Формальные языки, грамматики и основы построения трансляторов. Кревский И.Г - 108 стр.

UptoLike

108
20. ЛАБОРАТОРНЫЕ РАБОТЫ
Основной целью лабораторных работ по разработке трансляторов
является получение практических навыков, позволяющих разрабатывать
трансляторы как языков программирования, так специализированных языков
САПР. Отличительной особенностью данных лабораторных работ является
наличие одного сквозного задания (формального описания реализуемого
языка) для всех работ. Заданные для реализации языки подобны очень
простым языкам программирования. В каждой работе студенты
разрабатывают программу, выполняющую соответствующий этап
трансляции с реализуемого языка. Для написания трансляторов
рекомендуется использовать язык программирования Си.
Перед тем, как приступить к выполнению лабораторных работ,
необходимо изучить первые 4 раздела настоящего пособия.
В лабораторных работах предлагается трехпроходная организация
компилятора. Блок сканирования считывает исходную программу и
представляет ее в форме файла лексем (
Лабораторная работа 1).
Синтаксический анализатор читает этот файл, разбирает (Лабораторная
работа 2) и выдает новое представление программы в постфиксной форме
(Лабораторная работа 3). Наконец, этот файл считывается генератором
кода, который создает объектный код программы (Лабораторная работа 4).
При написании учебного транслятора важно то, что реализующие
каждый проход отдельные программы легче
отлаживать, чем одну большую.
Во 2-й и 3-й лабораторных работах пишется одна и та же программа. В
результате выполнения лабораторной работы 2 должна быть написана
программа, выполняющая синтаксический анализ (включая выявление и
диагностику всех синтаксических ошибок). В лабораторной работе 3 в
программу добавляются функции формирования постфиксной записи.
                                                                         108
                      20. ЛАБОРАТОРНЫЕ РАБОТЫ
     Основной целью лабораторных работ по разработке трансляторов
является получение практических навыков, позволяющих разрабатывать
трансляторы как языков программирования, так специализированных языков
САПР. Отличительной особенностью данных лабораторных работ является
наличие одного сквозного задания (формального описания реализуемого
языка) для всех работ. Заданные для реализации языки подобны очень
простым      языкам   программирования.     В     каждой   работе   студенты
разрабатывают      программу,     выполняющую       соответствующий     этап
трансляции     с   реализуемого    языка.   Для    написания   трансляторов
рекомендуется использовать язык программирования Си.
     Перед тем, как приступить к выполнению лабораторных работ,
необходимо изучить первые 4 раздела настоящего пособия.
     В лабораторных работах предлагается трехпроходная организация
компилятора. Блок сканирования считывает исходную программу и
представляет ее в форме файла лексем (Лабораторная работа №1).
Синтаксический анализатор читает этот файл, разбирает (Лабораторная
работа №2) и выдает новое представление программы в постфиксной форме
(Лабораторная работа №3). Наконец, этот файл считывается генератором
кода, который создает объектный код программы (Лабораторная работа №4).
     При написании учебного транслятора важно то, что реализующие
каждый проход отдельные программы легче отлаживать, чем одну большую.
Во 2-й и 3-й лабораторных работах пишется одна и та же программа. В
результате выполнения лабораторной работы №2 должна быть написана
программа, выполняющая синтаксический анализ (включая выявление и
диагностику всех синтаксических ошибок). В лабораторной работе №3 в
программу добавляются функции формирования постфиксной записи.