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

Грамматики

3) правила, левые и правые части которых состоят из нетерминалов и терминалов;

<предложение> < группа подлежащего >

<группа сказуемого >

<артикль > The, ...

4) начальный нетерминал — главный грамматический термин; из него выводятся те цепочки терминалов, которые считаются предложениями языка

<предложение>

11

Грамматики. Выводимость.

Определение 2.1. Грамматикой назы-

вается четвёрка G = (VN, VT, P, S), где VN, VT

алфавиты (словари) нетерминалов и терминалов соответственно, причём

VN VT = , P — конечное множество правил, каждое из которых имеет вид

,

где V *VNV *, V *, V = VN VT

объединённый алфавит (словарь) грамматики; S начальный нетерминал.

12

Грамматики. Выводимость.

Определение 2.2. Пусть P

правило, а , — любые цепочки из множества V *.

Тогда

— из

 

G

непосредственно выводится

цепочки цепочка в

грамматике G при помощи данного правила.

13

Грамматики. Выводимость.

Определение 2.3. Пусть 1, 2, ..., m

цепочки из множества V * и

 

,

 

, ...,

 

.

 

1

2

2

 

3

 

 

m 1

m

 

 

G

 

G

 

 

 

 

 

G

 

 

Тогда мы пишем:

 

 

 

 

 

 

 

 

 

 

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

1

G

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и говорим, что “из

 

1

выводится m

в

грамматике

G”.

 

 

 

 

 

 

 

 

 

14

Выводимость

Другими словами,

 

 

*

 

G

, если цепочка

может быть получена из цепочки путём применения некоторого числа правил из множества правил P.

 

 

 

*

По определению считается, что

 

G

 

 

 

для любой цепочки V * (рефлексивность)

и для этого не требуется никаких правил.

Значок

*

обозначает рефлексивно-транзитивное

 

 

G

 

 

замыкание отношения непосредственной выводимости .

G

15

Выводимость

Если мы хотим подчеркнуть, что вывод использует по крайней мере

правило грамматики, то мы пишем:

 

 

+

 

обозначает транзитивное замыкание

Значок

 

 

 

 

G

 

 

 

непосредственной выводимости.

 

такой

одно

G

отношения

Если мы хотим указать, что такой вывод происходит за n шагов, т. е. посредством применения n правил грамматики, то пишем:

 

 

Значок

n

обозначает

 

G

ственной выводимости.

n

G

nстепень отношения непосред-

16

Напомним, что для любого отношения R имеют место следующие тождества:

R0 = E = {( , ) V *},

Rn = RRn – 1 = Rn – 1R для n >0;

в частности, R1 = R;

*

k =

 

 

 

+

 

k =

 

R

k

,

 

k

R

 

R

R .

 

k = 0

 

 

 

 

 

k = 1

V * = Ν = {1, 2, 3...}

E = {(1, 1), (2, 2), (3, 3) ...} R1 = {(1, 1), (2, 4), (3, 9) ...}

R2 = {(1, 1), (2, 16), (3, 81), ...}

R3 = {(1, 1), (2, 256), (2, 6561), ...}

...

R* = E R1 R2 R3 ...

Они, разумеется, применимы и к отноше-

нию непосредственной выводимости .

G

17

Язык, порождаемый грамматикой

Определение 2.4. Язык, порождаемый грамматикой G, определим как

 

VT

S w

L(G) {w w

* ,

*

}.

 

 

G

 

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

18

Эквивалентные грамматики

Определение 2.5. Любая цепочка , такая, что

V * и

S

 

*

 

G

называется сентенциальной формой.

Определение 2.6. Грамматики G1 и G2

называются эквивалентными, если

L(G1) = L(G2).

19

Пример 2.1.

Ret 23

Рассмотрим грамматику G = (VN, VT, P, S),

Ret 36

 

где VN = {S}, VT = {0, 1}, P = {S 0S1 (1), S 01 (2)}.

 

Здесь S — единственный нетерминал, он же — начальный;

0 и 1 — терминалы; правил два: S 0S1 и S 01.

Так как оба правила имеют в левой части по одному символу S, то единственно возможный порядок их применения — сколько-то раз использовать первое правило, а затем один раз использовать второе. Применив первое правило n – 1 раз, а затем второе правило, получим:

(1)

(1)

(1)

 

 

(1)

(1)

 

 

(

)

3

3

n–1

n–1

2

 

S 0S1

00S11

 

... 0

 

0 S1

 

S1

 

G

G

G

G

 

 

G

G

 

 

 

 

0n1n.

Здесь мы воспользовались обозначением wi = w ... w,

причём w0 = .

i раз

Таким образом, эта грамматика порождает язык

L(G) = { 0n1n n >0}.

20

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