Компилятор
Компилятор — это программа, которая переводит исходный код на языке программирования в форму, пригодную для выполнения компьютером. Обычно результатом становится исполняемый файл или машинный код.
Как работает компилятор
Сначала компилятор читает исходный код и проверяет, соблюдены ли правила языка: правильно ли записаны команды, имена, скобки и типы данных. Затем он переводит программу в промежуточное или машинное представление. На последнем этапе компоновщик может объединить полученный код с готовыми библиотеками и создать исполняемый файл.
- Проверка текста программы и построение её структуры.
- Перевод команд в более низкоуровневое представление.
- Оптимизация кода и создание объектного или машинного кода.
- Компоновка частей программы и библиотек в готовую программу.
Пусть в файле записано print(2 + 3). Компилятор языка Python преобразует исходный текст в байткод, который затем выполняется виртуальной машиной Python. В компилируемых языках, например C++, результатом обычно становится отдельный исполняемый файл.
Интерпретатор обычно читает и выполняет программу во время запуска, часто последовательно. Компилятор заранее переводит программу полностью или крупными частями. На практике языки могут использовать смешанный подход: например, сначала выполнять компиляцию в байткод, а затем интерпретировать его или дополнительно компилировать.
Если компилятор находит синтаксическую или другую проверяемую ошибку, программа обычно не создаётся до её исправления. Это отличается от ошибки времени выполнения, которая возникает уже во время выполнения программы. Компилятор не всегда может обнаружить логическую ошибку: программа может запускаться, но давать неправильный результат.
Что обычно делает компилятор до запуска программы?
Главное
- Компилятор переводит исходный код в машинный, объектный или промежуточный код.
- Он проверяет программу до запуска и сообщает о многих ошибках.
- Компилятор отличается от интерпретатора способом перевода и выполнения программы.