Компилятор — это программа, которая выполняет процесс компиляции, как процесс, он состоит из нескольких шагов, которые мы будем видеть по одному за раз.

Сначала составим простенькую программу, чтобы видеть каждый шаг

Во-первых, предварительное сжатие, мы рассмотрим это с помощью компилятора gcc.

Давайте заглянем внутрь созданного файла, содержащего этап предварительного сжатия.

Первая задача, которую выполняет предшественник, — это удаление команд из кода, он добавляет код заголовка, а последняя задача заменяет все макросы соответствующим кодом.

Следующий шаг — компилятор, давайте сделаем файл, чтобы остановить его сразу после компиляции.

Теперь у нас есть файл с именем test.s, давайте посмотрим, что внутри

Это превращает код в ассемблерный код, который, как видите, содержит мнемоники, то есть «слова», напрямую связанные с процессом на машине.

Следующий шаг - ассемблер, сразу после сборки сделаем файл

Теперь у нас есть файл с именем test.o, давайте заглянем внутрь.

Это в значительной степени машинный язык, то есть 1 и 0.

Последний шаг — компоновщик, роль компоновщика — объединить весь код в один исполняемый файл.

Этот файл будет выполнять то, для чего была создана программа

И это весь процесс, выполняемый компилятором для C.