Принцип работы компилятора

Содержание

  1. 1. Классификация компиляторов в соответствии с этапами компиляции
  2. 2. Классификация компиляторов в соответствии с исходным кодом и целевым кодом
  3. 3. Основные этапы работы компилятора
  4. 4. Тест по теме «Принцип работы компилятора»
Тест: 3 вопроса
1. Компьютер, для которого производится компиляция, называется...
Целевая машина
Хост
Линкер
2. Преобразуют исходный код языка высокого уровня в исходный код другого языка высокого уровня ...
Транспилеры
Декомпиляторы
Кросс-компиляторы
3. Первый этап в работе компилятора − это...
Генерирование промежуточного кода
Проведение лексического анализа кода
Проведение синтаксического анализа кода.

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

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

Компиляторы составляют существенную часть программного обеспечения ЭВМ. Это связано с тем, что языки высокого уровня стали основным средством разработки программ. Только очень незначительная часть программного обеспечения, требующая особой эффективности, обходится без компиляторов и программируется при помощи ассемблеров

Компьютер, для которого производится компиляция, называется целевой машиной.

Входной информацией для компилятора является описание алгоритма или программа на языке программирования.

image.png

На выходе компилятора – эквивалентное описание алгоритма на машинно-ориентированном языке (объектный код).

Классификация компиляторов в соответствии с этапами компиляции

Одни компиляторы непосредственно преобразуют высокоуровневый исходный код в машинный код, а некоторые − сначала преобразуют высокоуровневый исходный код в промежуточное представление перед окончательным преобразованием в машинный код.

В соответствии с данным критерием классификации можно выделить два основных типа компиляторов:

  • Однопроходной компилятор − это компилятор, который проходит через части каждого блока компиляции только один раз, немедленно переводя каждую часть в конечный машинный код.
  • Двухпроходной/многопроходной компилятор − это тип компилятора, который два и более раз обрабатывает исходный код или абстрактное синтаксическое дерево программы.

Классификация компиляторов в соответствии с исходным кодом и целевым кодом

Для преобразования исходного кода в целевой применяются разные подходы.

Одни компиляторы преобразуют код на высокоуровневом языке в машинный. Другие же компиляторы преобразуют с одного языка высокого уровня на другой язык высокого уровня. Таким образом, опираясь на данный критерий классификации, можно выделить следующие типы компиляторов:

  • Кросс-компиляторы − такие компиляторы работают на одной платформе и производят код для запуска на другой платформе. Например, компилятор работает на платформе X и создает код для запуска на платформе Y. Такими компиляторами пользуются разработчики встроенных систем.
  • Традиционные компиляторы − наиболее распространённый тип компиляторов. Такие компиляторы преобразуют исходный код языка высокого уровня в исходный код машинного языка.
  • Транспилеры − они преобразуют исходный код языка высокого уровня в исходный код другого языка высокого уровня.
  • Декомпиляторы − они принимают низкоуровневый исходный код в качестве входных данных и пытаются на его основе создать высокоуровневый исходный код, который может быть в дальнейшем успешно перекомпилирован.

Основные этапы работы компилятора

Исходная программа, которая написана на некотором условном языке программирования, представляет собой цепочку знаков. Компилятор по сути своей постепенно превращает эту цепочку знаков в цепочку битов – объектный код.

Компиляторы используют следующие принципы и технологии в своей работе:

  1. Проведение лексического анализа кода;
  2. Проведение синтаксического анализа кода;
  3. Генерирование промежуточного кода;
  4. Оптимизация промежуточного кода;
  5. Распределение памяти между переменными компилируемого скрипта;
  6. Генерирование объектного кода и компонация программных сегментов.

Принцип работы компилятора состоит в следующем:

а) проверяется весь текст программы на наличие синтаксических ошибок;
б) если программа не содержит ошибок, то происходит ее выполнение.

Генерация выполняемой программы происходит только в том случае, если в тексте программы нет синтаксических ошибок.

Отличительной особенностью компилятора является то, что на его вход подается программа на языке высокого уровня, а на выходе получается та же программа на языке низкого уровня.

Вам нужно срочно заказать статью по программированию для публикации? Обратитесь за помощью к нашим экспертам!

Тест по теме «Принцип работы компилятора»

Комментарии

Нет комментариев

Предыдущая статья

Алгоритм

Следующая статья

Логические функции
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Прямой эфир