ВВЕДЕНИЕ | 3 |
1.ТИПЫ ЯЗЫКОВЫХ ПРОЦЕССОРОВ | 3 |
1.1. Процесс компиляции, модель и фазы компилятора | 4 |
2. ЛЕКСИЧЕСКИЙ АНАЛИЗ | 6 |
2.1.Регулярные выражения и регулярные множества | 7 |
2.2.Диаграммы | 9 |
2.3.Замкнутые множества и детерминированный конечный автомат (ДКА) | 12 |
2.4.Декартово произведение детерминированных конечных автоматов | 14 |
2.5.Разбиение алфавита | 15 |
2.6.Приведение к общему алфавиту | 16 |
2.7.Проектирование лексического анализатора | 17 |
3. СИНТАКСИЧЕСКИЙ АНАЛИЗ | 19 |
3.1.Контекстно-свободные грамматики и языки | 19 |
3.2.Синтаксические деревья | 21 |
3.3.Канонические выводы | 22 |
3.4.Функция FIRSTk (X) | 25 |
3.5.Система определяющих уравнений | 27 |
3.6.Алгоритм вычисления функции FIRSTk(X), k≥ 1 | 29 |
4. LL(k) - ГРАММАТИКИ | 32 |
4.1.Характеристическое свойство класса LL(k) -грамматик,k ≥ 1 | 32 |
4.2.Эквивалентные преобразования контекстно-свободных грамматик | 33 |
4.3.Предсказывающий алгоритм грамматического разбора | 37 |
4.4.Управляющая таблица SLL(k) - анализатора | 39 |
4.5.Проектирование LL(1) - анализатора | 40 |
5. LR(k) -ГРАММАТИКИ | 42 |
5.1.Восходящий синтаксический анализ | 42 |
5.2.Активные префиксы грамматики | 44 |
5.3.Конструирование ДКА М = (Q, V, g, qo, F) | 46 |
5.3.1.LR(k) -ситуации, к ≥0 | 46 |
5.3.2. Замкнутые множества LR(k) - ситуаций | 46 |
5.4.LR(k) - грамматики и функция действия | 47 |
5.4.1.Выполнимость LR(k) - условий | 47 |
5.4.2.Определение функции действия | 48 |
5.4.3.Конфигурации и управляющая таблица LR(k) - анализатора | 49 |
5.4.4.Конфигурации LR(k) - анализатора | 49 |
5.5.Проектирование LR(k) - анализатора | 51 |
5.6.Состояния LALR(1) - автомата | 57 |
5.7.Вычисление функции FOLLOWk(X) | 60 |
РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА | 61 |