Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
эл.лекции.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
6.74 Mб
Скачать

111

Лекции за весенний семестр от 26.5.2025

Министерство образования и науки РФ

Казанский Государственный Технический Университет им. А.Н. Туполева

Курс лекций по дисциплине

Теория языков программирования и методы трансляции.

Автор: старший преподаватель кафедры Прикладной Математики и Информатики им. Ю.В.Кожевникова Сергей Викторович Сотников.

Содержание

1. Класс контекстно-свободных языков (V-3.0 28.02.2009) 5

1.1. Свойства КС-языков 5

1.1.1. Теорема Огдена. Лемма о разрастании КС-языков 6

1.2. Приведение КС-грамматик 8

1.2.1. Определение пустоты языка 8

1.2.1.1. Алгоритм определения пустоты языка 8

1.2.2. Удаление недостижимых символов 9

1.2.2.1. Алгоритм удаления недостижимых символов 9

1.2.3. Удаление бесплодных (бесполезных) символов 10

1.2.3.1. Алгоритм удаления бесплодных символов 10

1.2.4. Удаление пустых правил 10

1.2.4.1. Алгоритм удаления пустых правил 10

1.2.5. Удаление цепных правил 11

1.2.5.1. Алгоритм удаления цепных правил 11

1.3. Нормализация грамматик (Приведение КС-грамматик к нормальной форме) 12

1.3.1. КС-грамматика в нормальной форме Хомского 12

1.3.1.1. Алгоритм преобразования к нормальной форме Хомского 12

1.3.2. КС-грамматика в нормальной форме Грейбах 15

1.3.2.1. Устранение левой (правой) рекурсии 15

1.3.2.1.1. Алгоритм устранения левой рекурсии 16

1.3.2.2. Преобразование нелеворекурсивной приведенной КС-грамматики к нормальной форме Грейбах 19

1.3.2.2.1. Алгоритм преобразования нелеворекурсивной приведенной КС-грамматики к нормальной форме Грейбах 19

1.3.2.3. Другой способ преобразования КС-грамматики к нормальной форме Грейбах (Метод Розенкранца) 21

1.3.2.3.1. Алгоритм метода Розенкранца 23

1.4. Автоматы с магазинной памятью (MП-автоматы) 25

1.5. Соотношения между различными МП-автоматами 32

1.5.1. Алгоритм построения МП-автомата по расширенному МП-автомату 32

1.5.2. Алгоритм построения расширенного МП-автомата по МП-автомату 36

1.5.3. МП-автоматы, опустошающие магазин 36

1.5.3.1. Алгоритм построения по МП-автомату МП-автомата, допускающего цепочки опустошением магазина 37

1.5.3.1. Алгоритм построения МП-автомата по МП-автомату, допускающего цепочки опустошением магазина 40

1.6. Эквивалентность МП-автоматов и КС-грамматик 40

1.6.1. Алгоритм построения МП-автомата по произвольной КС-грамматике 40

1.6.2. Алгоритм построения расширенного МП-автомата по произвольной КС-грамматике 43

1.6.3. Алгоритм построения КС-грамматики для произвольного МП-автомата 44

1.6.4. Алгоритм построения КС-грамматики для произвольного расширенного МП-автомата 46

2. Методы трансляции 47

2.1. Теория перевода 47

2.1.1. Формализмы, используемые для определения перевода 47

2.1.1.1. Перевод и семантика 48

2.1.1.2. Схемы синтаксически управляемого перевода ( СУ-схемы) 50

2.1.1.3. Конечные преобразователи 53

2.1.1.4. Преобразователь с магазинной памятью 55

2.1.1.5. Эквивалентность простых СУ-схем и преобразователей с магазинной памятью 56

2.1.1.5.1. Алгоритм построения МП-преобразователя для простой СУ-схемы 56

2.1.1.5.2. Алгоритм построения простой СУ-схемы по МП-преобразователю 59

2.1.2. Лексический анализ 62

2.1.2.1. Непрямой лексический анализ 63

2.1.2.2. Прямой лексический анализ 64

2.1.2.3. Программное моделирование конечных преобразователей 66

2.1.3. Синтаксический анализ 68

2.1.3.1. Определение разбора 68

2.2. Общие методы синтаксического анализа 70

2.2.1. Синтаксический анализ с возвратами 70

2.2.1.1. Алгоритм нисходящего разбора с возвратами 71

2.2.1.2. Проблемы алгоритм нисходящего разбора с возвратами 75

2.2.1.3. Алгоритм восходящего разбора с возвратами 76

Синтаксический анализ с возвратами 81