Конспект лекций москва 2004 удк 519. 713(075)+519. 76(075) ббк 22. 18я7

Вид материалаКонспект

Содержание


5. Классификация грамматик
6. А-языки. Конечные лингвистические автоматы 6.1. Диаграмма грамматики
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   21

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


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

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

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

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

Например, этому классу принадлежит грамматика G4 с правилами





S  abA ab ,

bA  Ab ,

aA  aabA ,

aA  aab .


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

Например, это грамматика G5 с правилами S  a S b ab , L(G5) = L(G4)= {anbn, n>0}.

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

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

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

Пример.

Грамматика G6, КЗ-грамматика с правилами




S aAc ,

A aABc ,

A b ,

bBbb ,

cB Bc .



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

Эквивалентная G6 контекстная грамматика G7 с правилами




S аBC ,

B аBDC ,

B b ,

bDbb ,

CD ED ,

ED EC ,

EC DC ,

Cc .




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

В ней правило переноса символа B заменяется на три правила.

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

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

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

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

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

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

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


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

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


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

Приведение грамматики к каноническому виду:
  1. Вводим дополнительный нетерминальный символ К, тогда VN’= VN  К.
  2. Заменяем правила вида Аа на правила АаК.
  3. Вводим дополнительное правило К.

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

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

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

2. Каждому правилу AaB сопоставим дугу из вершины 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  .