Л. ЗАЛОГОВА
РАЗРАБОТКА
ПАСКАЛЬ-
К О М П И Л Я Т О РА
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.