
- •Формальные языки и грамматики
- •Введение
- •1. Предварительные обсуждения
- •2. Формальные грамматики
- •3. Классификация формальных грамматик
- •4. Система составляющих
- •5. Синтаксические диаграммы
- •6. Синтаксическое дерево
- •7. Алгоритмы обхода вершин дерева разбора.
- •7.1 Алгоритм обхода "сверху-вниз".
- •7.2 Алгоритм обхода "снизу-вверх".
- •8. Двоичное дерево
- •9. Свойства двоичного дерева
- •10. Грамматический разбор цепочек
- •10.1. Разбор цепочки "сверху-вниз".
- •10.2. Разбор цепочки "снизу-вверх".
- •11. Операции над языками
- •Заключение
- •Контрольные вопросы и задачи
- •Индивидуальное задание
- •Указатель обозначений
- •Предметный указатель
- •Список литературы
Формальные языки и грамматики
С о д е р ж а н и е
Введение.................................................................................... 3
1. Предварительные обсуждения.................................................... 4
2. Формальные грамматики............................................................. 9
3. Классификация формальных грамматик..................................... 15
4. Система составляющих.............................................................. 23
5. Синтаксические диаграммы........................................................ 26
6. Синтаксическое дерево.............................................................. 30
7. Алгоритмы обхода вершин дерева разбора................................. 40
7.1. Алгоритм обхода "сверху-вниз"................................................ 40
7.2. Алгоритм обхода "снизу-вверх"................................................ 41
8. Двоичное дерево........................................................................ 43
9. Свойства двоичного дерева...................................................... 52
10.Грамматический разбор цепочек.............................................. 56
10.1 Разбор цепочки "сверху-вниз"................................................ 57
10.2 Разбор цепочки "снизу-вверх"................................................ 62
11. Операции над языками............................................................ 65
Заключение............................................................................ 67
Контрольные вопросы и задачи............................................... 68
Индивидуальные задания........................................................ 70
Указатель обозначений............................................................. 72
Предметный указатель............................................................. 73
Список литературы................................................................... 75
Введение
Программа для вычислительной машины - это текст на каком-либо формальном языке, отражающем алгоритм решаемой задачи. Структура программы зависит от выбранного языка и, как правило, не зависит от типа вычислительной машины. Поскольку программа задает характер алгоритмического процесса, то вычислительная машина должна понять текст программы и представить последовательность команд, реализующих этот процесс. Для вычислительной машины любая команда - это двоичный код фиксированной длины. Поэтому в составе вычислительной машины должна быть еще одна программа, которая могла бы читать исходную программу, написанную на языке высокого уровня, и генерировать эквивалентную ей программу на языке вычислительной машины. Такая программа называется транслятором.
Знание основ формальных грамматик и формальных языков является необходимым условием понимания того, как исходная программа, написанная человеком, воспринимается и исполняется вычислительной машиной.
Настоящее учебное пособие посвящено изучению основных принципов создания формальных грамматик, методов конструирования выражений и предложений формального языка и некоторых алгоритмов грамматического анализа текстов формального языка.
Для лучшего усвоения основных положений учебного пособия предложены контрольные задачи и индивидуальные задания на синтаксический анализ выражений формального языка.