Основы конструирования компиляторов

Скачать в pdf «Основы конструирования компиляторов»




Основы конструирования компиляторов


В.А.Серебряков, М.П.Галочкин


Предисловие


Предлагаемая вниманию читателя книга основана на курсе лекций, прочитанных на факультете вычислительной математики и кибернетики Московского государственного университета и факультете управления и прикладной математики Московского физико-технического института в 1991-1999 гг. Авторы надеются, что издание книги восполнит существенный пробел в литературе на русском языке по разработке компиляторов.


Содержание книги представляет собой “классические” разделы предмета: лексический и синтаксический анализ, организация памяти компилятора (таблицы символов) и периода исполнения (магазина), генерация кода. Рассматриваются некоторые средства автоматизации процесса разработки трансляторов, такие как LEX, YACC, СУПЕР, методы генерации оптимального кода. Сделана попытка на протяжении всего изложения провести единую “атрибутную” точку зрения на процесс разработки компилятора. В книге не затрагиваются чрезвычайно важные вопросы глобальной оптимизации и разработки компиляторов для машин с параллельной архитектурой. Авторы надеются восполнить эти пробелы в будущем.


Книга будет полезной как студентам и аспирантам программистских специальностей, так и профессионалам в этих областях.


Авторы с благодарностью примут все конструктивные замечания по содержанию книги.


ВА.Серебряков, serebr@ccas.ru М.П.Галочкин, galoch@ccas.ru

Оглавление


1    Введение    7


1.1    Место компилятора в программном


обеспечении…………………….. 7


1.2    Структура компилятора………………. 8


2    Языки и их представление    13


2.1    Алфавиты, цепочки и языки…………….. 13


2.2    Представление языков……………….. 15


2.3    Грамматики…………………….. 17


2.3.1    Формальное определение грамматики…….. 17


2.3.2    Типы грамматик и их свойства………… 18


3    Лексический анализ    21


3.1    Регулярные множества и выражения………… 23


3.2    Конечные автоматы…………………. 25


3.3    Алгоритмы построения конечных автоматов…….. 29


3.3.1    Построение недетерминированного конечного автомата по регулярному выражению………. 29

Скачать в pdf «Основы конструирования компиляторов»