Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
59
Добавлен:
16.04.2015
Размер:
676.97 Кб
Скачать

Эквивалентность НС и неукорачивающих грамматик

Замечание 2.2. Отметим, что новые правила с нетерминалами A могут применяться только в одной указанной последовательности и никакого другого эффекта, кроме того, какое производит заменяемое правило, воспроизвести не могут.

Соблазн “оптимизировать” построение НСграмматики, не используя дополнительные нетерминалы A, а заменяя по-одному нетерминалы левой части X сразу на нетерминалы правой части Y, за исключением последнего правила, заменяющего последний X на все оставшиеся Y, мог бы привести к не эквивалентной грамматике.

31

Эквивалентность НС и неукорачивающих грамматик

Пример 2.3. Покажем на примере, как построить НС-грамматику, эквиваленную неукорачивающей грамматике примера 2.2:

G = (VN, VT, P, S), где VN = {S, B, C}, VT = {a, b, c},

P = { (1) S aSBC, (2) S aBC, (3) CB BC,

(4) aB ab, (5) bB bb, (6) bC bc, (7) cC cc}.

Все правила, кроме (3), не нуждаются ни в каких преобразованиях, т. к. уже соответствуют требованиям НС-грамматики.

32

Эквивалентность НС и неукорачивающих грамматик

Правило (3) заменим группой правил: (3.1) CB A1B, (3.2) A1B A1A2, (3.3) A1A2 BA2, (3.4) BA2 BC,

которые все также соответствуют требованиям НС-грамматики. Эти правила не для чего, кроме как для вывода:

CB A1B A1A2 BA2 BC

служить не могут. В них A1 и A2 новые нетерминалы.

Заметим, что последняя замена, указанная на общей схеме, не потребовалась, ибо здесь q = 0.

33

Грамматики типа 2 — cfg

Определение 2.8. Грамматика

G = (VN, VT, P, S)

является грамматикой типа 2 или контекстно-свободной грамматикой,

если каждое её правило имеет вид

A P,

где A VN, V .

34

Грамматики типа 2 — cfg

Вместо термина “контекстно-свободная грамматика” часто используют аббревиату-

ру cfg (context-free grammar) или сокращение КС-грамматика.

Замечание 2.3. Правило вида A позволяет заменить A на независимо от контекста, в котором появляется A.

35

Грамматики типа 2 — cfg

Грамматика, приведенная в примере 2.1, является не только грамматикой типа 0, грамматикой типа 1, но и контекстносвободной (по Хомскому типа 2).

36

Пример 2.3. Рассмотрим интересную контекстно-свободную грамматику

G = (VN, VT, P, S), где

VN = {S, A, B}, VT={a, b},

P ={S aB, S bA,

A a, A aS, A bAA, B b, B bS, B aBB}.

37

Пример 2.3 cfg

Индукцией по длине цепочки покажем, что

L(G) = {x {a, b}+ #a x = #b x},

где #a x обозначает число букв а в цепочке x, а #b x — число букв b.

Другими словами, язык, порождаемый этой грамматикой, состоит из непустых цепочек, в которых число букв а и b одинаково.

38

Пример 2.3 cfg

Заметим, что в порождении языка уча-

ствуют все правила P и только они.

Сучётом этого достаточно доказать для

xVT+ ,что

1)S * x тогда и только тогда, когда #a x = #b x;

2)A * x тогда и только тогда, когда #a x = #b x + 1;

3)B * x тогда и только тогда, когда #b x = #a x + 1.

39

Пример 2.3 cfg

I. Необходимость. Индукция по длине вывода l.

База (l = 1). Очевидно, что все три утверждения выполняются для всех выводов в один шаг, поскольку A a, B b, и никакая терминальная цепочка в один шаг не выводима из S.

40

Соседние файлы в папке lectures