ВУЗ:
Составители:
54
S
→
aSX
S
→
ε
X
→
b
X
→
c
и полученной в результате грамматикой будет LL(1).
Процесс факторизации, однако, нельзя автоматизировать,
распространив его на общий случай. Следующий пример показывает, что
может произойти. Рассмотрим правила
1. P
→
Qx
2. P
→
Ry
3. Q
→
sQm
4. Q
→
q
5. R
→
sRn
6. R
→
r
Оба множества направляющих символов для двух вариантов P
содержат s, и, пытаясь "вынести s за скобки", мы замещаем Q и R в правых
частях правил 1 и 2:
P
→
sQmx
P
→
sRny
P
→
qx
P
→
ry
Эти правила можно заменить следующими:
P
→
qx
P
→
ry
P
→
sP
1
P
1
→
Qmx
P
1
→
Rny
Правила для P
1
аналогичны первоначальным правилам для P и имеют
пересекающиеся множества направляющих символов. Мы можем
преобразовать эти правила так же, как и правила для P:
P
1
→
sQmmx
P
1
→
qmx
P
1
→
sRnny
P
1
→
rny
Факторизуя, получаем
P
1
→
qmx
P
1
→
rny
P
1
→
sP
2
P
2
→
Qmmx
P
2
→
Rnny
Правила для P
2
аналогично правилам для P
1
и P, но длиннее их, и
теперь уже очевидно, что этот процесс бесконечный. Таким образом, не
54
S → aSX X→b
S→ε X→c
и полученной в результате грамматикой будет LL(1).
Процесс факторизации, однако, нельзя автоматизировать,
распространив его на общий случай. Следующий пример показывает, что
может произойти. Рассмотрим правила
1. P → Qx 4. Q → q
2. P → Ry 5. R → sRn
3. Q → sQm 6. R → r
Оба множества направляющих символов для двух вариантов P
содержат s, и, пытаясь "вынести s за скобки", мы замещаем Q и R в правых
частях правил 1 и 2:
P → sQmx P → qx
P → sRny P → ry
Эти правила можно заменить следующими:
P → qx P1 → Qmx
P → ry P1 → Rny
P → sP1
Правила для P1 аналогичны первоначальным правилам для P и имеют
пересекающиеся множества направляющих символов. Мы можем
преобразовать эти правила так же, как и правила для P:
P1 → sQmmx P1 → sRnny
P1 → qmx P1 → rny
Факторизуя, получаем
P1 → qmx P2 → Qmmx
P1 → rny P2 → Rnny
P1 → sP2
Правила для P2 аналогично правилам для P1 и P, но длиннее их, и
теперь уже очевидно, что этот процесс бесконечный. Таким образом, не
Страницы
- « первая
- ‹ предыдущая
- …
- 52
- 53
- 54
- 55
- 56
- …
- следующая ›
- последняя »
