formal_language_theory / lectures / unit_2
.pdfГрамматики
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