Читать онлайн «Разработка Паскаль-компилятора»

Автор Л. А. Залогова

Л. ЗАЛОГОВА РАЗРАБОТКА ПАСКАЛЬ- К О М П И Л Я Т О РА 3-е издание (электронное) Москва БИНОМ. Лаборатория знаний 2014 УДК 004. 4’42 ББК 32. 973. 26-018. 2 З-24 Залогова Л. А. З-24 Разработка Паскаль-компилятора [Электронный ре- сурс] / Л. А. Залогова. — 3-е изд. (эл. ). — Электрон. тек- стовые дан. (1 файл pdf : 186 с. ). — М. : БИНОМ. Ла- боратория знаний, 2014. — Систем. требования: Adobe Reader XI ; экран 10". ISBN 978-5-9963-2526-9 В книге излагается структура компилятора, основные принципы построения всех его основных блоков — лекси- ческого, синтаксического и семантического анализаторов, а также генератора кода. Методы компиляции программ на Паскале описаны на языке С. Для студентов и специалистов, занимающихся созданием программного обеспечения, а также для всех, желающих создать компилятор с своего собственного языка программи- рования. УДК 004. 4’42 ББК 32. 973. 26-018. 2 Деривативное электронное издание на основе печатного ана- лога: Разработка Паскаль-компилятора / Л. А. Залогова. — М. : БИНОМ. Лаборатория знаний, 2007. — 183 с. : ил. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации ISBN 978-5-9963-2526-9 c БИНОМ. Лаборатория знаний, 2007 ○ Оглавление Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Глава 1. Структура компилятора . . . . . . . . . . . . . . . . . . . . . . . . . 6 Глава 2. Модуль ввода-вывода . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2. 1. Взаимодействие между модулем ввода-вывода и анализатором . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2. 2. Программирование модуля ввода-вывода . . . . . . . . 11 2. 2. 1. Формирование таблицы ошибок . . . . . . . . . . . . 12 2. 2. 2. Печать сообщений об ошибках . . . . . . . . . . . . .
13 Глава 3. Лексический анализатор . . . . . . . . . . . . . . . . . . . . . . . 15 3. 1. Взаимодействие лексического анализатора с другими частями компилятора . . . . . . . . . . . . . . . 15 3. 2. Программирование лексического анализатора. . . . . 18 3. 2. 1. Лексические ошибки. . . . . . . . . . . . . . . . . . . . . 24 Глава 4. Синтаксический анализатор . . . . . . . . . . . . . . . . . . . . 26 Глава 5. Нейтрализация синтаксических ошибок . . . . . . . . . 36 Глава 6. Семантический анализатор . . . . . . . . . . . . . . . . . . . . . 45 6. 1. Контекстные условия. . . . . . . . . . . . . . . . . . . . . . . . 45 6. 2. Организация таблиц семантического анализатора . . 46 6. 2. 1. Таблица идентификаторов . . . . . . . . . . . . . . . . 46 6. 2. 2. Таблица типов. . . . . . . . . . . . . . . . . . . . . . . . . . 60 6. 2. 3.