
- •1. Алфавит, слова, операции над словами
- •2. Языки. Операции над языками
- •3. Абстрактные формальные системы
- •4. Формальные порождающие грамматики
- •5. Классификация грамматик
- •Диаграмма грамматики.
- •Порождение и распознавание цепочек.
- •Детерминизация конечных автоматов
- •Автоматы с - переходами.
- •9. Минимизация числа состояний автомата
- •9.1. Лингвистический автомат.
- •9.2. Метод Хафмена.
- •Регулярные множества и регулярные выражения.
- •Разрешимые проблемы для а-грамматик
- •7. Нотации для задания кс-грамматик.
- •8. Структура цепочек. Су-схемы
- •9. Преобразования грамматик.
- •10. Разрешимые и неразрешимые свойства кс-грамматик
- •11. Синтаксический анализ для кс-языков
- •11.1 Ll(k)-грамматики
- •12.Элементы теории конечных автоматов
- •13.Сети автоматов. Их анализ и синтез.
5. Классификация грамматик
Выделяются определенные классы грамматик, основными среди которых являются контекстно-свободные (КС), контекстно-зависимые (КЗ), автоматные…
Основными типами грамматик являются:
Грамматики класса «0» - не накладывается ограничений на вид правила.
Контекстно-зависимые (КЗ) – грамматики, все правила которых имеют вид , где,(VTVN )*
Например, грамматика G4 с правилами
|
S abA ab bA Ab aA aabA aA aab
|
Контекстно-свободные (КС- грамматики), все правила которых имеют вид А, где АVN,(VTVN )*.
Например, грамматика G5с правиламиSaАbab.
L(G5) = L(G4)
Автоматные (А-грамматики), все правила которых имеют вид Аа, Аa B, А, aVT, A,B VN.
Иногда выделяется еще один класс грамматик: контекстные грамматики, или грамматики класса 1, все правила которых имеют вид , где,(VTVN),A VN,(VTVN )*.
Здесь пара цепочек исоставляет неизменяемый контекст правила. Между контекстными грамматиками и КЗ-грамматиками существует взаимно-однозначное соответствие, не всегда очевидное. По выразительной мощности эти классы грамматик совпадают, однако, поскольку для одного и того же языка контекстная грамматика содержит большее число правил, мы будем изучать именно КЗ-грамматики.
Пример.
Грамматика G6, КЗ-грамматика
|
S aAc A aABc A b bBbb cB Bc |
L(G6)= {anbncn, n |
Эквивалентная ей контекстная грамматика G7. В ней правило переноса символа С заменяется на 3 правила.
|
S ABC B ABDC B b bDbb CD ED ED EC EC DC Cc |
L(G7)= {anbncn, n |
В соответствии с классом грамматики, порождающей язык, классифицируются языки. Т.Е. язык, для которого может быть порожден КС- грамматикой, называется КС-языком (т.е. язык, для которого существует порождающая его КС-грамматика, и не существует А-грамматики, порождающей этот язык).
А-язык - язык, для которого может быть построена порождающая его А-грамматика.
КЗ-язык – язык, который может быть построен только КЗ-грамматикой.
Непосредственная классификация грамматик выглядит следующим образом.
Класс А-грамматик включается в класс КС-грамматик. Все грамматики принадлежат классу 0.
Однако класс КС-грамматик не включается в класс КЗ-грамматик, так как правила вида Амогут принадлежать КС-грамматикам, но не КЗ-грамматикам, т.к.А.
Поэтому общий вид классификации следующий:
Класс 0
КЗ-грамматики
КС-грамматики
КС-грамматики без -правил
А-грамматики без
-правил
А-грамматики
Для рассмотрения иерархии языков надо больше знать о преобразованиях грамматик.
6. А-языки. Конечные автоматы.
Диаграмма грамматики.
Пусть дана А-грамматика G=< VT,VN, S, R>. Диаграмма А-грамматики – граф с помеченными вершинами и дугами. Множество вершин графа соответствует множеству нетерминалов А-грамматики, приведенной к каноническому виду, а множество дуг – множеству правил грамматики.
Преобразование грамматики:
Вводим дополнительный нетерминальный символ К. VN =VNК
Заменяем правила вида Аа на правила АаК.
Вводим дополнительное правило К
Таким образом, все правила грамматики теперь приобрели "стандартный" вид AaB илиA.
Построение диаграммы опишем следующими правилами.
1. Каждому нетерминальному символу поставим в соответствие вершину и пометим ее этим символом.
2. Каждому правилу AaB сопоставим дугу из вершиныAв вершинуВи пометим ее терминальным символома.
3. Отметим в графе как начальную вершину - вершину, соответствующую начальному символу, и как заключительные - все такие вершины В, чтоB (на диаграмме используется символ #) .
Пример.
Пусть грамматикаG8
описывается правилами:
|
S aBbC B bbB C aS |
Грамматика в канонической форме будет иметь вид:
|
S aBbC B bKbB C aS K |
Диаграмма грамматики приводится на рис.1.
Рис.1
Очевидно, что существует взаимно-однозначное соответсвие между грамматикой в каноническом виде и диаграммой.
Например, рассмотрим диаграмму грамматики, представленную на рис.2.
Рис.2
Очевидно, что диаграмме соответствует грамматика G9с правилами
|
S aSaB B bKbB K |