
formal_language_theory / lectures / unit_5
.pdf
Пример 5.3.
Теперь определим правило для нетерминала [q1Xq1] из правой части (2.2) по движению
(2) (q1, 0, X) = {(q1, XX)}: (2.3) [q1Xq1] 0[q1Xq0][q0Xq1] (2.4) [q1Xq1] 0[q1Xq1][q1Xq1]
Правило (2.3) излишне, так как нетерминал [q1Xq0] в правой части этого правила непродуктивный, ибо
R = {[q0Xq1], [q1Xq1], [q1Zq1], [q0Zq1] }.
91

Пример 5.3.
Окончательно получаем следующее множество правил приведённой грамматики:
(0.2) S [q0 Zq1],
(1.4) [q0 Zq1] 0[q0 Xq1][q1Zq1], (2.2) [q0 Xq1] 0[q0 Xq1][q1Xq1], (2.4) [q1Xq1] 0[q1Xq1][q1Xq1],
(3) [q0 Xq1] 1, |
(4) [q1 Xq1] 1, |
(5) [q1Xq1] , |
(6) [q1Zq1] . |
Заметим, что первый индекс, не равный 0, в номерах правил грамматики соответствует номеру равенства в определении .
92

Пример 5.3.
Обозначим
[q0Zq1] = A, [q1Zq1] = B,
[q0Xq1] = C, [q1Xq1] = D.
В новых обозначениях нетерминалов имеем следующие правила грамматики:
(1)S A,
(2)A 0CB,
(3)B
(4)C 0CD (5) C 1,
(6) D 0DD, (7) D 1, (8) D .
|
1 |
S |
|
|
A
2
0CB
4
00CDB
5
8
001DB
001B
3
001.
Next |
93 |
|