Основы конструирования компиляторов

         

Основы конструирования компиляторов

Место компилятора в программном обеспечении
Структура компилятора
Алфавиты, цепочки и языки
Представление языков

Формальное определение грамматики
Типы грамматик и их свойства
Лексический анализ
Регулярные множества и выражения

Конечные автоматы
Построение недетерминированного конечного автомата по регулярному выражению
Построение детерминированного конечного автомата по недетерминированному



Регулярные множества и их представления
Программирование лексического анализа
Конструктор лексических анализаторов LEX

КС-грамматики и МП-автоматы
Преобразования КС-грамматик
Алгоритм разбора сверху-вниз

Функции FIRST и FOLLOW
Конструирование таблицы предсказывающего анализатора
LL(1)-грамматики
Удаление левой рекурсии
Левая факторизация
Рекурсивный спуск
Восстановление после синтаксических ошибок
Основа

LR(1)-анализаторы
Конструирование LR(1)-таблицы
LR(1)-грамматики
Восстановление после синтаксических ошибок

Варианты LR-анализаторов
Элементы теории перевода
Преобразователи с магазинной памятью
Синтаксически управляемый перевод
Обобщенные схемы синтаксически управляемого перевода
Атрибутные грамматики
Определение атрибутных грамматик

Классы атрибутных грамматик и их реализация
Описание областей видимости и блочной структуры
Занесение в среду и поиск объектов
Организация таблиц символов
Таблицы идентификаторов
Таблицы расстановки

Таблицы расстановки со списками
Функции расстановки
Таблицы на деревьях
Реализация блочной структуры
Сравнение методов реализации таблиц
Промежуточное представление программы
Представление в виде ориентированного графа

Трехадресный код
Линеаризованные представления
Виртуальная машина Java
Организация памяти
Набор команд виртуальной машины
Помещение локальных переменных на стек
Вызов метода

Обработка исключительных ситуаций
Организация информации в генераторе кода
Уровень промежуточного представления
Генерация кода
Модель машины
Динамическая организация памяти
Организация магазина со статической цепочкой

Организация магазина с дисплеем
Назначение адресов
Трансляция переменных
Трансляция целых выражений
Трансляция арифметических выражений

Трансляция логических выражений
Выделение общих подвыражений

Сопоставление образцов
Синтаксический анализ для T-грамматик
Выбор дерева вывода наименьшей стоимости
Атрибутная схема для алгоритма сопоставления образцов

Системы автоматизации построения трансляторов
Система СУПЕР
Система Yacc
Литература
Содержание раздела