• Язык
 

Разработка Паскаль-компилятора

ISBN: 978-5-00101-450-8

Москва: Лаборатория знаний, 2017

Объем (стр):186

Дополнительная информация:4-е изд. (эл.)

 

Постраничный просмотр для данной книги Вам недоступен.

Аннотация

В книге излагается структура компилятора, основные принципы построения всех его основных блоков—лексического, синтаксического и семантического анализаторов, а также генератора кода. Методы компиляции программ на Паскале описаны на языке С.
Для студентов и специалистов, занимающихся созданием программного обеспечения, а также для всех, желающих создать компилятор с своего собственного языка программирования.

Содержание

Глава 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. Таблица меток 71
6.3. Программирование семантического анализатора 75
6.3.1. Создание фиктивной области действия 75
6.3.2. Анализ описания переменных 78
6.3.3. Анализ описания типов 81
6.3.4. Анализ операторов 84
6.3.5. Анализ выражения 92
Глава 7. Введение в генерацию кода 99
Глава 8. Архитектура модульного конвейерного процессора 101
8.1. Регистры 101
8.2. Способы представления данных 102
8.3. Способы адресации операндов 105
8.4. Команды 108
8.4.1. Команды для С- и Р-регистров 110
8.4.2. Команды пересылки данных между локальной памятью и регистрами 112
8.4.3. Команды для И-регистров 112
8.4.4. Команды передачи управления 113
8.4.5. Управление регистровым контекстом 115
8.4.6. Команды для Д-регистров 122
8.4.7. Векторные команды 124
Глава 9. Организация оперативной памяти во время выполнения программы 126
9.1. Области данных процедур 126
9.2. Адресация переменных 127
9.2.1. Адресация простых переменных 128
9.2.2. Адресация переменных с индексами 133
9.2.3. Адресация поля записи 135
9.3. Память для данных скалярных типов 135
9.4. Память для данных структурных типов 135
Глава 10. Генерация кода 139
10.1. Формирование команд 139
10.2. Промежуточное представление и генерация кода для выражений 142
10.3. Промежуточное представление и генерация кода для операторов 150
Литература 167
Приложение 1. Синтаксис стандарта языка Паскаль 168
Приложение 2. Сообщения об ошибках Паскаль-компилятора 179
Приложение 3. Коды команд для С- и Р-регистров 182

Рекомендации материалов по теме: нет