ВУЗ:
Составители:
27
На этапе анализа выполняется распознавание текста исходной программы,
создание и заполнение таблиц идентификаторов. Результатом его работы слу-
жит некое внутреннее представление программы, понятное компилятору.
На этапе синтеза на основании внутреннего представления программы и
информации, содержащейся в таблице (таблицах) идентификаторов, порожда-
ется текст результирующей программы. Результат этого этапа – объектный код.
Кроме того, в составе компилятора присутствует часть, ответственная за
анализ и исправление ошибок, которая при наличии ошибки в тексте исходной
программы должна максимально полно информировать пользователя о типе
ошибки и месте ее возникновения. В лучшем случае компилятор может пред-
ложить пользователю вариант исправления ошибки.
Эти этапы, в свою очередь, состоят из более мелких этапов, называемых
фазами компиляции. Состав фаз компиляции приведен в самом общем виде, их
конкретная реализация и процесс взаимодействия могут различаться в зави-
симости от версии компилятора. Однако в том или ином виде все представлен-
ные фазы практически всегда присутствуют в компиляторах.
Рассмотрим основные фазы (части) компиляции:
Лексический анализ (сканер) – это часть компилятора, которая читает ли-
теры программы на исходном языке и строит из них слова (лексемы) исходного
языка. На вход лексического анализатора поступает текст исходной программы,
а выходная информация передается для дальнейшей обработки компилятором
на этапе синтаксического разбора. С теоретической точки зрения лексический
анализатор не является обязательной, необходимой частью компилятора. Одна-
ко существует причины, которые определяют его присутствие практически во
всех компиляторах.
Страницы
- « первая
- ‹ предыдущая
- …
- 23
- 24
- 25
- 26
- 27
- …
- следующая ›
- последняя »