جزییات کتاب
Джек КреншоуДавайте создадим компилятор!Описание: Эта книга, состоящая из шестнадцати частей, является нетехническим введением в конструирование компиляторов. Серия является руководством по теории и практике разработки синтаксических анализаторов и компиляторов языков программирования. До того как вы закончите чтение этой книги, вы раскроете каждый аспект конструирования компиляторов, разработаете новый язык программирования и создадите работающий компилятор. СОДЕРЖАНИЕ: Показать / Скрыть текст 1. ВВЕДЕНИЕОснова 2. СИНТАКСИЧЕСКИЙ АНАЛИЗ ВЫРАЖЕНИЙ Начало Одиночные цифры Выражения с двумя цифрами Общая форма выражения Использование стека Умножение и деление Круглые скобки Унарный минус Слово об оптимизации 3. СНОВА ВЫРАЖЕНИЯ Введение Переменные Функции Подробнее об обработке ошибок Присваивание Многосимвольные токены Пробелы 4. ИНТЕРПРЕТАТОРЫ Введение Интерпретатор Немного философии 5. УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ Введение План Немного основ Оператор IF Оператор WHILE Оператор LOOP Цикл FOR Оператор DO Оператор BREAK Заключение 6. БУЛЕВЫ ВЫРАЖЕНИЯ Введение План Грамматика Операторы отношений Исправление грамматики Синтаксический анализатор Объединение с управляющими конструкциями Добавление присваиваний 7. ЛЕКСИЧЕСКИЙ АНАЛИЗ Введение Лексический анализ Конечные автоматы и альтернативы Эксперименты по сканированию Пробел Конечные автоматы Новые строки Операторы Списки, запятые и командные строки Становится интересней Возвращение символа Распределенные сканеры против централизованных Объединение сканера и парсера Заключение 8. НЕМНОГО ФИЛОСОФИИ Введение Дорога домой Почему это так просто? Здесь нет ничего сложного! Заключение 9. ВИД СВЕРХУ Введение Верхний уровень Структура Паскаля Расширение Объявления Структура Си 10. ПРЕДСТАВЛЕНИЕ "TINY" Введение Подготовка Объявления Объявления и идентификаторы Инициализаторы Таблица идентификаторов Выполнимые утверждения Булева логика Управляющие структуры Лексический анализ Многосимвольные имена переменных Снова операторы отношений Ввод/Вывод Заключение 11. ПЕРЕСМОТР ЛЕКСИЧЕСКОГО АНАЛИЗА Введение Предпосылка Проблема Решение Исправление компилятора Заключение 12. РАЗНОЕ Введение Точки с запятой Синтаксический сахар Работа с точками с запятой Компромисс Комментарии Односимвольные разделители Многосимвольные разделители Односторонние комментарии Заключение 13. ПРОЦЕДУРЫ Введение Последнее отклонение Основы Основа для экспериментов Объявление процедуры Вызов процедуры Передача параметров Семантика параметров Передача по значению Что неправильно? Передача по ссылке Локальные переменные Заключение 14. ТИПЫ Введение Что будет дальше? Таблица идентификаторов Добавление записей Распределение памяти Объявление типов Присваивания Трусливый выход Более приемлемое решение Литеральные аргументы Аддитивные выражения Почему так много процедур? Мультипликативные выражения Умножение Деление Завершение Приводить или не приводить Заключение 15. НАЗАД В БУДУЩЕЕ Введение Новое начало, старое направление Начинаем заново? Модуль INPUT Модуль OUTPUT Модуль ERROR Лексический и синтаксический анализ Модуль SCANNER Решения, решения Синтаксический анализ Ссылки 16. КОНСТРУИРОВАНИЕ МОДУЛЕЙ Введение Совсем как классический? Расширение синтаксического анализатора Термы и выражения Присваивания Булева алгебра Булево «AND»