Лекция: В чем состоит процесс компиляции?
Компилятор – программа переводящая текст программы на языке высокого уровня в эквивалентную программу на машинном языке.
Процесс компиляции:
Сначала выполняется проверка текста программы на отсутствие ошибок, а потом — генерируется исполняемая программа (ехе-файл).
Процесс компиляции состоит из следующих этапов:
1) Лексический анализ. На этом этапе последовательность символов исходного файла преобразуется в последовательность лексем.
2) Синтаксический (грамматический) анализ. Последовательность лексем преобразуется в дерево разбора.
3) Семантический анализ. Дерево разбора обрабатывается с целью установления его семантики (смысла) — например, привязка идентификаторов к их декларациям, типам, проверка совместимости, определение типов выражений и т. д. Результат обычно называется «промежуточным представлением/кодом», и может быть дополненным деревом разбора, новым деревом, абстрактным набором команд или чем-то ещё, удобным для дальнейшей обработки.
4) Оптимизация. Выполняется удаление излишних конструкций и упрощение кода с сохранением его смысла. Оптимизация может быть на разных уровнях и этапах — например, над промежуточным кодом или над конечным машинным кодом.
5) Генерация кода. Из промежуточного представления порождается код на целевом языке.