Общение — настолько жизненно важный и мощный инструмент человеческого взаимодействия, что попытка представить себе реальность, не имея возможности общаться с нашими сверстниками, была бы практически невозможной.
Если я скажу «Привет! Вы можете прочитать это и понять, что на самом деле я пытаюсь представить себя вам приветствием, но, если я скажу «01001000 01100101 01101100 01101100 01101111 00100001», вы можете изобразить это лицо ( ͡◉ ͜ʖ ͡◉).

БИП-БУП-БИП!

Правильно, у машин есть свой способ общения, муравей, который двоичный!
простая и прямая линия бесконечных единиц и нулей может быть трудна для понимания для нас, людей, но для машин это часть торт!

Вот как вы, вероятно, видите код, пара слов, которые определенным образом объединены, дают нам результат.

У нас есть «include», «main», «return», общие слова для простых людей, таких как вы и я.

Машина не такая, как мы с вами, нет, она видит набор цифр и определенных букв. Но как, как мы можем перевести с человеческого языка на машинный язык? Это называется КОМПИЛИРОВАНИЕ

СОСТАВЬТЕ ЭТУ КУЧУ!

В Unix язык C (язык, который мы используем для этой демонстрации) компилируется по-своему, с использованием gcc (Коллекция компиляторов GNU) в CLI (Интерфейс командной строки), мы можем скомпилировать любой файл, содержащий код C. Смущенный? голый со мной.

Это CLI Unix-Ubuntu, в основном ввод определенных команд здесь приведет к определенным результатам, на изображении ниже ввод команды ls и ввод отобразит все текущее содержимое каталога.

HelloWorld.c — это обычный файл с текстом.

Внутри HelloWorld.c у нас есть стандартный код C Hello World.

Мы можем наделить HelloWorld.c особыми возможностями компиляции!

Как? с помощью gcc! при вводе после файла, который мы хотим скомпилировать, HelloWorld.c запустит «процесс компиляции C», то есть он будет доступен для чтения на машине (в двоичном формате) и даст нам исполняемый файл для человека (standardoutput) и напечатает ожидаемое нами «Hello World!».

HelloWorld.c перейдет от редактора к распространяемому исполняемому файлу, каждая фаза делает свое дело, вот простое объяснение. (подробное объяснение смотрите в этом видео).

Препроцессор — замените имя макроса кодом.

Компилятор — генерирует код сборки.

Assembler — код на ассемблере преобразуется в объектный код (двоичный).

Linker — генерирует исполняемый код.

Компиляция POWERRR!

для компиляции мы используем следующую команду:

$ gcc [file to be compiled] -o [compiled file name]

HelloWorld.c прошел через весь «процесс сборки/компиляции C», и его результатом является исполняемый файл Compiled_HelloWorld, при выполнении которого отобразится наш любимый «Hello World!».

Мы сделали это! простое руководство по использованию gcc и Ubuntu для языка C, идите, напишите код и дайте ему НЕОГРАНИЧЕННУЮ МОЩНОСТЬ! (он же иди и скомпилируй несколько файлов ;)!)