Учебное пособие
Кафедра автоматизированных систем управления
Библиографическая запись:
Оглавление (содержание)
ВВЕДЕНИЕ 6
1 ПРЕДВАРИТЕЛЬНЫЕ МАТЕМАТИЧЕСКИЕ СВЕДЕНИЯ 8
1.1 Множества 8
1.2 Операции и отношения 9
1.3 Множества цепочек 18
1.4 Языки 20
1.5 Алгоритмы 22
1.6 Некоторые понятия теории графов 26
2 ВВЕДЕНИЕ В КОМПИЛЯЦИЮ 34
2.1 Задание языков программирования 34
2.2 Синтаксис и семантика 36
2.3 Процесс компиляции 39
2.4 Лексический анализ 40
2.5 Работа с таблицами 43
2.6 Синтаксический анализ 44
2.7 Генератор кода 46
2.8 Оптимизация кода 52
2.9 Исправление ошибок 54
2.10 Резюме 55
3 ТЕОРИЯ ЯЗЫКОВ 57
3.1 Способы определения языков 57
3.2 Грамматики 58
3.3 Грамматики с ограничениями на правила 63
3.4 Распознаватели 64
3.5 Регулярные множества, их распознавание и порождение 68
3.6 Недетерминированные конечные автоматы 74
3.7 Графическое представление конечных автоматов 78
3.8 Конечные автоматы и регулярные множества 82
3.9 Минимизация конечных автоматов 83
3.10 Контекстно-свободные языки 87
3.11 Автоматы с магазинной памятью 106
4 КС-ГРАММАТИКИ И СИНТАКСИЧЕСКИЙ АНАЛИЗ СВЕРХУ ВНИЗ 112
4.1 LL(k)-грамматики 114
4.2 LL(1)-грамматики 116
4.3 LL(1)-таблица разбора 135
5 СИНТАКСИЧЕСКИЙ АНАЛИЗ СНИЗУ ВВЕРХ 148
5.1 LR(k)-грамматики 148
5.2 LR(1)-грамматики 156
5.3 LR(1)-таблица разбора 157
5.4 Сравнение LL- и LR-методов разбора 174
6 ВКЛЮЧЕНИЕ ДЕЙСТВИЙ В СИНТАКСИС 176
6.1 Получение четверок 176
6.2 Работа с таблицей символов 180
7 ПРОЕКТИРОВАНИЕ КОМПИЛЯТОРОВ 185
7.1 Число проходов 185
7.2 Таблицы символов 186
7.3 Таблица видов 192
7.4 Распределение памяти 194
8 ГЕНЕРАЦИЯ КОДА 220
8.1 Генерация промежуточного кода 220
8.2 Структура данных для генерации кода 225
8.3 Генерация кода для типичных конструкций 229
8.4 Проблемы, связанные с типами 236
8.5 Время компиляции и время прогона 239
9 ИСПРАВЛЕНИЕ И ДИАГНОСТИКА ОШИБОК 242
9.1 Типы ошибок 242
9.2 Лексические ошибки 243
9.3 Ошибки в употреблении скобок 245
9.4 Синтаксические ошибки 247
9.5 Контекстно-зависимые ошибки 252
9.6 Ошибки, связанные с употреблением типов 254
9.7 Ошибки, допускаемые во время прогона 255
9.8 Ошибки, связанные с нарушением ограничений 257
ЗАКЛЮЧЕНИЕ 259
СПИСОК ЛИТЕРАТУРЫ 260
ГЛОССАРИЙ 261