Учеб. пособие. — М.: Учебно-методический центр по образованию на железнодорожном транспорте, 2016. — 176 с.
Рассмотрены различные синтаксически ориентированные алгоритмы анализа предложений и основные этапы трансляции, а также структура трансляторов с различных языков. Проанализированы структуры таблиц трансляторов и алгоритмы работы с этими таблицами. Освещены вопросы оптимизации исходных программ.
Кроме того, рассмотрено обобщение грамматик Хомского — так называемых plex-грамматик. Показано, как с помощью plex-грамматик можно
анализировать изображение.
Предназначено для студентов, обучающихся по направлению подготовки 09.03.02 «Информационные системы и технологии» (профиль «Программное обеспечение средств вычислительной техники и автоматизированных систем»).
Введение. Обзор языков программирования
Машинный язык и язык ассемблераАссемблер
Макроязык и макропроцессор
Макрокоманды
Функции макропроцессора
Языки программирования высокого уровняКонечные автоматыТаблицы переходов
Эквивалентность состояний конечных автоматов
Проверка эквивалентности двух состояний
Недостижимые состояния
Приведенные автоматы
Недетерминированные автоматы
Эквивалентность детерминированных и недетерминированных автоматов
Автоматы с магазинной памятью
Структура языка. Формальные системыБэкус-наурова форма (БНФ). Определение языка
Грамматики Хомского. Иерархия языков
Связь между формальными грамматиками и автоматами
Нисходящий синтаксический анализ предложений
Ограничения на порождающие правила
Эквивалентность и однозначность грамматик
Синтаксические диаграммы
Грамматики рекурсивного спуска
Таблично-управляемый алгоритм грамматического разбора
Восходящие алгоритмы грамматического анализаГрамматики простого предшествования
LR(k)-грамматики
Атрибутные грамматикиПрименение атрибутных грамматик
Атрибутные транслирующие грамматикиЛексический анализ и таблицы транслятораСтруктура таблиц транслятора
Генерация кодаСинтаксические деревья разбора
Многоадресный код с явно именуемым результатом (тетрады)
Многоадресный код с неявно именуемым результатом (триады)
Ассемблерный код и машинные команды
Обратная польская запись операций
Организация таблиц трансляторов и поиск в таблицах
Таблицы расстановки
Таблицы расстановки со списками
Функции расстановки
Таблицы с использованием двоичных деревьев
Реализация блочной структуры
Сравнение методов реализации таблиц
Распределение памяти
ОптимизацияАппаратно-зависимая оптимизация
Аппаратно-независимая оптимизация
Вычисления во время компиляции
PLEX-грамматикиОсобенности использования plex-грамматик для описания изображений
Рекомендуемая литература