
- •Автор: старший преподаватель кафедры Прикладной Математики и Информатики им. Ю.В.Кожевникова Сергей Викторович Сотников.
- •2.3. Общие методы синтаксического анализа 81
- •1. Класс контекстно-свободных языков (V-3.0 28.02.2009)
- •1.1. Свойства кс-языков
- •1.1.1. Теорема Огдена. Лемма о разрастании кс-языков
- •1.2. Приведение кс-грамматик
- •Удаление недостижимых символов;
- •Удаление бесплодных (бесполезных) символов;
- •Удаление цепных правил;
- •1.2.5. Удаление цепных правил
- •1.2.5.1. Алгоритм удаления цепных правил
- •1.3. Нормализация грамматик (Приведение кс-грамматик к нормальной форме)
- •1.3.1.1. Алгоритм преобразования к нормальной форме Хомского
- •1.3.2.1. Устранение левой (правой) рекурсии
- •1.3.2.1.1. Алгоритм устранения левой рекурсии
- •1.3.2.2. Преобразование нелеворекурсивной приведенной кс-грамматики к нормальной форме Грейбах
- •1.3.2.2.1. Алгоритм преобразования нелеворекурсивной приведенной кс-грамматики к нормальной форме Грейбах
- •1.3.2.3. Другой способ преобразования кс-грамматики к нормальной форме Грейбах (Метод Розенкранца)
- •1.3.2.3.1. Алгоритм метода Розенкранца
- •1.4. Автоматы с магазинной памятью (mп-автоматы)
- •1.5. Соотношения между различными мп-автоматами
- •1.5.1. Алгоритм построения мп-автомата по расширенному мп-автомату
- •1.5.2. Алгоритм построения расширенного мп-автомата по мп-автомату
- •1.5.3.1. Алгоритм построения по мп-автомату мп-автомата, допускающего цепочки опустошением магазина
- •1.5.3.1. Алгоритм построения мп-автомата по мп-автомату, допускающего цепочки опустошением магазина
- •1.6. Эквивалентность мп-автоматов и кс-грамматик
- •1.6.1. Алгоритм построения мп-автомата по произвольной кс-грамматике
- •1.6.2. Алгоритм построения расширенного мп-автомата по произвольной кс-грамматике
- •1.6.3. Алгоритм построения кс-грамматики для произвольного мп-автомата
- •1.6.4. Алгоритм построения кс-грамматики для произвольного расширенного мп-автомата
- •2. Методы трансляции
- •2.1. Теория перевода
- •2.1.1. Формализмы, используемые для определения перевода
- •2.1.1.1. Перевод и семантика
- •2.1.1.2. Схемы синтаксически управляемого перевода ( су-схемы)
- •2.1.1.3. Конечные преобразователи
- •2.1.1.4. Преобразователь с магазинной памятью
- •2.1.1.5. Эквивалентность простых су-схем и преобразователей с магазинной памятью
- •2.1.1.5.1. Алгоритм построения мп-преобразователя для простой су-схемы
- •2.1.1.5.2. Алгоритм построения простой су-схемы по мп-преобразователю
- •2.1.2. Лексический анализ
- •2.1.2.1. Непрямой лексический анализ
- •2.1.2.2. Прямой лексический анализ
- •2.1.2.3. Программное моделирование конечных преобразователей
- •2.1.3. Синтаксический анализ
- •2.1.3.1. Определение разбора
- •2.2. Общие методы синтаксического анализа
- •2.2.1. Синтаксический анализ с возвратами
- •2.2.1.1. Алгоритм нисходящего разбора с возвратами
- •2.2.1.2. Проблемы алгоритм нисходящего разбора с возвратами
- •2.2.1.3. Алгоритм восходящего разбора с возвратами
- •Синтаксический анализ с возвратами
- •2.3. Общие методы синтаксического анализа универсальные методы синтаксического анализа. Табличные методы синтаксического анализа Алгоритм Кока-Янгера-Касами
- •Алгоритм разбора Кока-Янгера-Касами
- •Алгоритм нахождения левого разбора по таблице разбора
- •Алгоритм Эрли
- •Алгоритм разбора Эрли
- •Алгоритм построения правого разбора по списку разбора
Министерство образования и науки РФ
Казанский Государственный Технический Университет им. А.Н. Туполева
Курс лекций по дисциплине
Теория языков программирования и методы трансляции.
Автор: старший преподаватель кафедры Прикладной Математики и Информатики им. Ю.В.Кожевникова Сергей Викторович Сотников.
Содержание
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