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

Структура компилятора.
Компилятор — это программа, которая переводит программу на языке высокого уровня в эквивалентную программу на другом (объектном) языке. Обычно компилятор также выдает листинг, содержащий текст исходной программы и сообщения обо всех обнаруженных ошибках.
Разработка программного обеспечения (ПО) подразумевает модульность и хорошую структурированность программ. Учитывая это, представим компилятор как совокупность логически взаимосвязанных модулей, определим взаимодействие между ними и, используя метод пошаговой детализации, опишем основные функции отдельных модулей на языке С.
ОГЛАВЛЕНИЕ.
Введение.
Глава 1. Структура компилятора.
Глава 2. Модуль ввода-вывода.
2.1. Взаимодействие между модулем ввода-вывода и анализатором.
2.2. Программирование модуля ввода-вывода.
2.2.1. Формирование таблицы ошибок.
2.2.2. Печать сообщений об ошибках.
Глава 3. Лексический анализатор.
3.1. Взаимодействие лексического анализатора
с другими частями компилятора.
3.2. Программирование лексического анализатора.
3.2.1. Лексические ошибки.
Глава 4. Синтаксический анализатор.
Глава 5. Нейтрализация синтаксических ошибок.
Глава 6. Семантический анализатор.
6.1. Контекстные условия.
6.2. Организация таблиц семантического анализатора.
6.2.1. Таблица идентификаторов.
6.2.2. Таблица типов.
6.2.3. Таблица меток.
6.3. Программирование семантического анализатора.
6.3.1. Создание фиктивной области действия.
6.3.2. Анализ описания переменных.
6.3.3. Анализ описания типов.
6.3.4. Анализ операторов.
6.3.5. Анализ выражения.
Глава 7. Введение в генерацию кода.
Глава 8. Архитектура модульного конвейерного процессора.
8.1. Регистры.
8.2. Способы представления данных.
8.3. Способы адресации операндов.
8.4. Команды.
8.4.1. Команды для С- и Р-регистров.
8.4.2. Команды пересылки данных между локальной памятью и регистрами.
8.4.3. Команды для И-регистров.
8.4.4. Команды передачи управления.
8.4.5. Управление регистровым контекстом.
8.4.6. Команды для Д-регистров.
8.4.7. Векторные команды.
Глава 9. Организация оперативной памяти во время выполнения программы.
9.1. Области данных процедур.
9.2. Адресация переменных.
9.2.1. Адресация простых переменных.
9.2.2. Адресация переменных с индексами.
9.2.3. Адресация поля записи.
9.3. Память для данных скалярных типов.
9.4. Память для данных структурных типов.
Глава 10. Генерация кода.
10.1. Формирование команд.
10.2. Промежуточное представление и генерация кода для выражений.
10.3. Промежуточное представление и генерация кода для операторов.
Литература.
Приложение 1. Синтаксис стандарта языка Паскаль.
Приложение 2. Сообщения об ошибках Паскаль-компилятора.
Приложение 3. Коды команд для С- и Р-регистров.
Купить .
Теги: учебник по программированию :: программирование :: Залогова
Смотрите также учебники, книги и учебные материалы:
- Turbo Pascal, Практикум, Немнюгин С.А., 2001
- Практикум по курсу Блокчейн и его приложения, Пинягина О.В., 2022
- Анализ и проектирование систем с использованием UML, Учебное пособие для вузов, Галиаскаров Э.Г., Воробьев А.С., 2024
- Программирование на языке Object Pascal в среде Borland Delphi 7.0, Воробейчикова О.В., 2017