Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дискретная математика.doc
Скачиваний:
123
Добавлен:
10.05.2014
Размер:
905.22 Кб
Скачать

5. Классификация грамматик

Выделяются определенные классы грамматик, основными среди которых являются контекстно-свободные (КС), контекстно-зависимые (КЗ), автоматные…

Основными типами грамматик являются:

Грамматики класса «0» - не накладывается ограничений на вид правила.

Контекстно-зависимые (КЗ) – грамматики, все правила которых имеют вид , где,(VTVN )*

Например, грамматика G4 с правилами

S  abA ab

bA  Ab

aA  aabA

aA  aab

Контекстно-свободные (КС- грамматики), все правила которых имеют вид А, где АVN,(VTVN )*.

Например, грамматика G5с правиламиSaАbab.

L(G5) = L(G4)

Автоматные (А-грамматики), все правила которых имеют вид Аа, Аa B, А, aVT, A,B VN.

Иногда выделяется еще один класс грамматик: контекстные грамматики, или грамматики класса 1, все правила которых имеют вид , где,(VTVN),A VN,(VTVN )*.

Здесь пара цепочек исоставляет неизменяемый контекст правила. Между контекстными грамматиками и КЗ-грамматиками существует взаимно-однозначное соответствие, не всегда очевидное. По выразительной мощности эти классы грамматик совпадают, однако, поскольку для одного и того же языка контекстная грамматика содержит большее число правил, мы будем изучать именно КЗ-грамматики.

Пример.

Грамматика G6, КЗ-грамматика

S aAc

A aABc

A b

bBbb

cB Bc

L(G6)= {anbncn, n

Эквивалентная ей контекстная грамматика G7. В ней правило переноса символа С заменяется на 3 правила.

S ABC

B ABDC

B b

bDbb

CD ED

ED EC

EC DC

Cc

L(G7)= {anbncn, n

В соответствии с классом грамматики, порождающей язык, классифицируются языки. Т.Е. язык, для которого может быть порожден КС- грамматикой, называется КС-языком (т.е. язык, для которого существует порождающая его КС-грамматика, и не существует А-грамматики, порождающей этот язык).

А-язык - язык, для которого может быть построена порождающая его А-грамматика.

КЗ-язык – язык, который может быть построен только КЗ-грамматикой.

Непосредственная классификация грамматик выглядит следующим образом.

Класс А-грамматик включается в класс КС-грамматик. Все грамматики принадлежат классу 0.

Однако класс КС-грамматик не включается в класс КЗ-грамматик, так как правила вида Амогут принадлежать КС-грамматикам, но не КЗ-грамматикам, т.к.А.

Поэтому общий вид классификации следующий:

Класс 0

КЗ-грамматики

КС-грамматики

КС-грамматики без -правил

А-грамматики без

-правил

А-грамматики

Для рассмотрения иерархии языков надо больше знать о преобразованиях грамматик.

6. А-языки. Конечные автоматы.

Диаграмма грамматики.

Пусть дана А-грамматика G=< VT,VN, S, R>. Диаграмма А-грамматики – граф с помеченными вершинами и дугами. Множество вершин графа соответствует множеству нетерминалов А-грамматики, приведенной к каноническому виду, а множество дуг – множеству правил грамматики.

Преобразование грамматики:

Вводим дополнительный нетерминальный символ К. VN =VNК

Заменяем правила вида Аа на правила АаК.

Вводим дополнительное правило К

Таким образом, все правила грамматики теперь приобрели "стандартный" вид AaB илиA.

Построение диаграммы опишем следующими правилами.

1. Каждому нетерминальному символу поставим в соот­ветствие вершину и пометим ее этим символом.

2. Каждому правилу AaB сопоставим дугу из верши­ныAв вершинуВи пометим ее терминальным символома.

3. Отметим в графе как начальную вершину - вершину, со­ответствующую начальному символу, и как заключительные - все такие вершины В, чтоB (на диаграмме используется символ #) .

Пример. Пусть грамматикаG8 описывается правилами:

S aBbC

B bbB

C aS

Грамматика в канонической форме будет иметь вид:

S aBbC

B bKbB

C aS

K

Диаграмма грамматики приводится на рис.1.

Рис.1

Очевидно, что существует взаимно-однозначное соответсвие между грамматикой в каноническом виде и диаграммой.

Например, рассмотрим диаграмму грамматики, представленную на рис.2.

Рис.2

Очевидно, что диаграмме соответствует грамматика G9с правилами

S aSaB

B bKbB

K 