Разработка компиляторов. Ишакова Е.Н. - 14 стр.

UptoLike

Составители: 

14
По количеству проходов выделяют одно-, двух-, трех- и многопроходные
компиляторы. В данном пособии предлагается схема разработки трехпроходно-
го компилятора, в котором первый проходлексический анализ, второй - син-
таксический, семантический анализ и генерация внутреннего представления
программы, третийинтерпретация программы.
Общая схема работы компилятора представлена на рисунке 2.3.
Рисунок 2.3 – Общая схема работы компилятора
2.3 Лексический анализатор программы
Определение 2.4. Лексический анализатор (ЛА) – это первый этап про-
цесса компиляции, на котором символы, составляющие исходную программу,
группируются в отдельные минимальные единицы текста, несущие смысловую
нагрузкулексемы.
Задача лексического анализа - выделить лексемы и преобразовать их к виду,
удобному для последующей обработки. ЛА использует регулярные грамматики.
ЛА необязательный этап компиляции, но желательный по следующим
причинам:
1) замена идентификаторов, констант, ограничителей и служебных слов
лексемами делает программу более удобной для дальнейшей обработки;
Синтез
Анализ
Лексический
анализ
Синтаксический
разбор
Семантический
анализ
Подготовка к
генерации кода
Генерация кода
Внутреннее
представление
программы
Исходная
программа
Анализ
и локализация
обнаруженных
ошибок
Сообщение
об ошибке
Объектная
программа
Таблицы идентификаторов
      По количеству проходов выделяют одно-, двух-, трех- и многопроходные
компиляторы. В данном пособии предлагается схема разработки трехпроходно-
го компилятора, в котором первый проход – лексический анализ, второй - син-
таксический, семантический анализ и генерация внутреннего представления
программы, третий – интерпретация программы.
      Общая схема работы компилятора представлена на рисунке 2.3.

                                   Анализ
               Исходная               Лексический
               программа                  анализ


                                     Синтаксический




                                                                 Таблицы идентификаторов
                                         разбор

               Анализ
            и локализация            Семантический
            обнаруженных                анализ
               ошибок

                                        Внутреннее
             Сообщение                 представление
                                        программы
             об ошибке

                                   Синтез
                                      Подготовка к
                                     генерации кода


             Объектная               Генерация кода
             программа


                  Рисунок 2.3 – Общая схема работы компилятора

     2.3 Лексический анализатор программы

      Определение 2.4. Лексический анализатор (ЛА) – это первый этап про-
цесса компиляции, на котором символы, составляющие исходную программу,
группируются в отдельные минимальные единицы текста, несущие смысловую
нагрузку – лексемы.
      Задача лексического анализа - выделить лексемы и преобразовать их к виду,
удобному для последующей обработки. ЛА использует регулярные грамматики.
      ЛА необязательный этап компиляции, но желательный по следующим
причинам:
      1) замена идентификаторов, констант, ограничителей и служебных слов
лексемами делает программу более удобной для дальнейшей обработки;
                                                                                           14