Книга известного специалиста в области информатики Никлауса Вирта написана по материалам его лекций по вводному курсу проектирования компиляторов. На примере простого языка Оберон-0 рассмотрены все элементы транслятора, включая оптимизацию и генерацию кода. Приведен полный текст компилятора на языке программирования Оберон. Для программистов, преподавателей и студентов, изучающих системное программирование и методы трансляции.
Название: Построение компиляторов Автор: Вирт Н. Издательство: ДМК Пресс Год: 2010 Страниц: 192 Формат: PDF Размер: 16,3 МБ ISBN: 978-5-94074-585-3 Качество: Отличное Серия или Выпуск: Классика программирования
Содержание:
От авторов перевода О книге О переводе Введение Предисловие Благодарности Глава 1. Введение Глава 2. Язык и синтаксис 2.1. Упражнения Глава 3. Регулярные языки 3.1. Упражнение Глава 4. Анализ контекстно-свободных языков 4.1. Метод рекурсивного спуска 4.2. Таблично-управляемый нисходящий синтаксический анализ 4.3. Восходящий синтаксический анализ 4.4. Упражнения Глава 5. Атрибутные грамматики и семантики 5.1. Правила типов 5.2. Правила вычислений 5.3. Правила трансляции 5.4. Упражнение Глава 6. Язык программирования Оберон-0 6.1. Упражнение Глава 7. Синтаксический анализатор для Оберона-0 7.1. Лексический анализатор 7.2. Синтаксический анализатор 7.3. Устранение синтаксических ошибок 7.4. Упражнения Глава 8. Учет контекста, заданного объявлениями 8.1. Объявления 8.2. Записи о типах данных 8.3. Представление данных во время выполнения 8.4. Упражнения Глава 9. RISC-архитектура как цель 9.1. Ресурсы и регистры Глава 10. Выражения и присваивания 10.1. Прямая генерация кода по принципу стека 10.2. Отсроченная генерация кода 10.3. Индексированные переменные и поля записей 10.4. Упражнения Глава 11. Условные и циклические операторы и логические выражения 11.1. Сравнения и переходы 11.2. Условные и циклические операторы 11.3. Логические операции 11.4. Присваивание логическим переменным 11.5. Упражнения Глава 12. Процедуры и концепция локализации 12.1. Организация памяти во время выполнения 12.2. Адресация переменных 12.3. Параметры 12.4. Объявления и вызовы процедур 12.5. Стандартные процедуры 12.6. Процедуры-функции 12.7. Упражнения Глава 13- Элементарные типы данных 13.1. Типы REAL и LONGREAL 13.2. Совместимость между числовыми типами данных 13.3. Тип данных SET 13.4. Упражнения Глава 14. Открытые массивы, указательный и процедурный типы 14.1. Открытые массивы 14.2. Динамические структуры данных и указатели 14.3. Процедурные типы 14.4. Упражнения Глава 15. Модули и раздельная компиляция 15.1. Принцип скрытия информации 15.2. Раздельная компиляция 15.3. Реализация символьных файлов 15.4. Адресация внешних объектов 15.5. Проверка конфигурационной совместимости 15.6. Упражнения Глава 16. Оптимизация и структура пре/постпроцессора 16.1. Общие соображения 16.2. Простые оптимизации 16.3. Исключение повторных вычислений 16.4. Распределение регистров 16.5. Структура пре/постпроцессорного компилятора 16.6. Упражнения Приложение A. Синтаксис A1. Оберон-0 A2. Оберон A3. Символьные файлы Приложение B. Набор символов ASCII Приложение C. Компилятор Оберон-0 C.1. Лексический анализатор C.2. Синтаксический анализатор C.3. Генератор кода Литература