Москва: Мир, 1975. — 544 с.
Этот курс посвящается главным образом изучению методов анализа
исходного языка и генерации эффективной объектной программы.
Конечно, в нем следует рассмотреть некоторые теоретические вопросы,
но он должен иметь практическую направленность, т. е. в результате
изучения этого курса студенты должны научиться конструировать
компиляторы. Поэтому в задание по программированию необходимо
включить реализацию компонент компилятора и, возможно,
проектирование простого компилятора целиком (групповое задание).
Грамматики и языки. Сканер. Нисходящие распознаватели. Грамматики
простого предшествования. Другие восходящие распознаватели.
Продукционный язык. Организациия памяти во время выполнения
программы. Организация таблиц символов. Информация в таблице
символов. Внутренние формы исходной программы. Введение в
семантические программы. Семантические программы для конструкций
языка, подобного АЛГОЛу. Отведение памяти переменным в готовой
программе. Нейтрализация ошибок. Интерпретаторы. Генерация
объектного кода. Оптимизация программы. Реализация макросредств.
Системы построения трансляторов. Советы разработчику компилятора.