ОПИСАНИЕ
|
|
В.А. Серебряков, М.П. Галочкин, Д.Р. Гончар,
М.Г. Фуругян.
|
|
Теория
и реализация языков программирования.
|
|
Предлагаемая вниманию читателя книга
основана на курсе лекций, прочитанных на факультете вычислительной
математики и кибернетики Московского государственного университета и
факультете управления и прикладной математики Московского
физико-технического института в 1991 – 1999 гг.
|
|
Содержание книги представляет собой
“классические” разделы предмета: лексический и синтаксический анализ,
организация памяти компилятора (таблицы символов) и периода исполнения
(магазина), генерация кода. Рассматриваются некоторые средства
автоматизации процесса разработки трансляторов, такие как LEX, YACC, СУПЕР, методы
генерации оптимального кода. Сделана попытка на
протяжении всего изложения провести единую “атрибутную” точку зрения
на процесс разработки компилятора. В книге не рассматриваются чрезвычайно
важные вопросы глобальной оптимизации и разработки компиляторов для машин с
параллельной архитектурой.
|
|
Книга будет полезной как студентам и
аспирантам программистских специальностей, так и профессионалам в этих
областях.
|
|
СОДЕРЖАНИЕ
|
|
Глава 1. Введение.
|
|
§1. Место компилятора в программном обеспечении.
§2. Структура компилятора.
|
|
Глава 2. Языки и их
представление.
|
|
§1. Алфавиты, цепочки и языки.
§2. Представление языков.
§3. Грамматика.
§4. Машины Тьюринга.
§5. Связь машин Тьюринга и грамматик типа 0.
§6. Линейно-ограниченные автоматы и их связь с
контекстно-зависимыми грамматиками.
|
|
Глава 3. Лексический
анализ.
|
|
§1. Регулярные множества и выражения.
§2. Конечные автоматы.
§3. Алгоритмы построения конечных автоматов.
§4. Связь регулярных множеств, конечных автоматов и регулярных
грамматик.
§5. Программирование лексического анализа.
§6. Конструктор лексических анализаторов LEX.
|
|
Глава 4.
Синтаксический анализ.
|
|
§1. КС-грамматики и МП-автоматы.
§2. Преобразования КС-грамматик.
§3. Предсказывающий разбор сверху-вниз.
§4. Разбор сверху-вниз типа сдвиг-свертка.
|
|
Глава 5. Элементы
теории перевода.
|
|
§1. Преобразователи с магазинной памятью.
§2. Синтаксически управляемый перевод.
§3. Атрибутные грамматики.
|
|
Глава 6. Проверка
контекстных условий.
|
|
§1. Описание областей видимости и блочной структуры.
§2. Занесение в среду и поиск объектов.
|
|
Глава 7. Организация
таблиц символов.
|
|
§1. Таблицы идентификаторов.
§2. Таблицы расстановки.
§3. Таблицы расстановки со списками.
§4. Функции расстановки.
§5. Таблицы на деревьях.
§6. Реализация блочной структуры.
§7. Сравнение методов реализации таблиц.
|
|
Глава 8.
Промежуточное представление программы.
|
|
§1. Представление о виде ориентированного графа.
§2. Трехадресный код.
§3. Линеаризованные представления.
§4. Виртуальная машина Java.
§5. Организация информации в генераторе кода.
§6. Уровень промежуточного представления.
|
|
Глава 9. Генерация
кода.
|
|
§1. Модель машины.
§2. Динамическая организация памяти.
§3. Назначение адресов.
§4. Трансляция переменных.
§5. Трансляция целых выражений.
§6. Трансляция арифметических выражений.
§7. Трансляция логических выражений.
§8. Выделение общих подвыражений.
§9. Трансляция объектно-ориентированных свойств языков
программирования.
§10. Генерация оптимального кода методами синтаксического
анализа.
|
|
Глава 10. Системы
автоматизации построения трансляторов.
|
|
§1. Система СУПЕР.
§2. Система YACC.
|
|
Приложения.
|
|
Приложение A. Семантика
контекстно-свободных языков.
Приложение B. Атрибутные
грамматики.
Приложение C. Задачи по разделам
книги.
|
|