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

Теорема 4.10. Пусть G несамовставленная КС-грамматика. Тогда L(G) — регулярное множество.

Доказательство. Нетрудно убедиться в том, что если исходная грамматика не является самовставленной, то и эквивалентные ей грамматики в нормальной форме Хомского и Грейбах — тоже несамовставленные.

121

Регулярность языка, порождаемого несамовставленной cfg

Поэтому, если G — несамовставленная грамматика, то мы можем найти грамматику

G1 = (

V

N

, VT, P1, S1) в нормальной форме

 

 

1

 

Грейбах, эквивалентную грамматике G, которая тоже будет несамовставленной.

122

Регулярность языка, порождаемого несамовставленной cfg

Действительно, при получение НФХ исключение цепных правил, замена вхождений терминалов в правых частях правил на новые нетерминалы вида C, а затем ввод новых нетерминалов вида D, не вносит самовложенности относительно этих нетерминалов.

123

Регулярность языка, порождаемого несамовставленной cfg

Что касается получения нормальной формы Грейбах из НФХ, то подстановки на место крайнего слева нетерминала Aj в правилах вида Ai Aj (i j) только повышает индекс j, но не вносит самовставенности.

Исключение левой рекурсии из правил вида A A вводит новый нетерминал Z, который может быть самовставленым, если только нетерминал A

— самовставлен, чего нет.

Учитывая теорему 4.3 о приводимости любой cfg, “ложные” признаки самовставенности могут быть исключены из рассуждений.

124

Регулярность языка, порождаемого несамовставленной cfg

Рассмотрим левосторонний вывод в

грамматике G1 некоторой сентенциальной

формы x , где x VT , а VN . Докажем сначала, что

+

1

*

 

если G1 имеет m нетерминалов и l — длина самой длинной правой части правил, то никакая сентенциальная форма не может иметь больше, чем ml нетерминалов.

125

Регулярность языка, порождаемого несамовставленной cfg

Чтобы убедиться в этом, предположим противное, что в некоторой сентенциальной форме x левостороннего вывода появляется больше, чем ml нетерминалов.

В дереве вывода цепочки x рассмотрим путь от корня к крайнему левому листу, помеченному нетерминалом (рис. 4.5).

126

Регулярность языка, порождаемого несамовставленной cfg

Ур. 1

Ур. 2

Ур. k

x = x1 x2 xk

Терминалы

S

A

A

X1

X1

Xp

Xp-1

X2

X2 Xp 1 Xp =

Нетерминалы

Рис. 4.5

127

Регулярность языка, порождаемого несамовставленной cfg

Узлы одного уровня представляют правую часть одного правила грамматики, породившего эти узлы.

Все узлы, расположенные справа от этого пути, также как и упомянутый лист, ещё не раскрывались с помощью правил. Именно они и образуют цепочку , состоящую из нетерминалов.

На каждом уровне, кроме самого нижнего, таких узлов не больше, чем l – 2. На нижнем же уровне их не больше, чем l – 1.

128

Регулярность языка, порождаемого несамовставленной cfg

Предположим, что в нашем дереве вывода k уровней. Тогда на всех уровнях узлов, порождающих , не больше, чем (l – 2)(k – 1) + l – 1. Всего таких узлов на всех k уровнях по предположению больше ml.

Следовательно,

(l – 2)(k – 1) + l – 1 ml + 1, откуда

k (mll+2) / (l–2) +1 = ml / (l–2) > ml / l = m.

Это, естественно, предполагает, что l > 2.

129

Регулярность языка, порождаемого несамовставленной cfg

Итак, уровней k в дереве вывода (длина пути, о котором шла речь) больше m, т. е. по крайней мере их m + 1.

Следовательно, на этом пути найдутся, по крайней мере, два узла, помеченных одним и тем же нетерминалом A.

В этом случае существует левосторонний

*

+

1

 

 

 

VT , VN

,

вывод вида A zA , где z

G1

 

 

 

т. е. z , (l > 2).

 

 

 

А это значит, что A — самовставленный

нетерминал, что противоречит условию

теоремы.

130

 

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