编译原理陈意云3-20 (a) 证明下面文法 S→AaAb|BbBa A→ε B→ε 是LL(1)文法,但不是SLR(1)文法。
生活随笔
收集整理的這篇文章主要介紹了
编译原理陈意云3-20 (a) 证明下面文法 S→AaAb|BbBa A→ε B→ε 是LL(1)文法,但不是SLR(1)文法。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
思路:依次判斷是否為LL(1)文法和SLR文法即可
證明:
(1)首先該文法無左遞歸存在,沒有公共左因子.
其次:對于S→AaAb|BbBa FIRST(AaAb)={a} FIRST(BbBa)=
FIRST(AaAb)∩FIRST(BbBa)=Φ
所以該文法是LL(1)文法.
(2)證明該文法不是SLR的.
文法的LR(0)項目集規范族為:
I0={S’→.S S→.AaAb S→.BbBa A→. B→.}
I1={ S’→ S. }
I2={ S→A.aAb }
I3={ S→B.bBa }
I4={ S→Aa.Ab A→. }
I5={ S→Bb.Ba B→. }
I6={ S→AaA.b }
I7={ S→BbB.a }
I8={ S→AaAb. }
I9={ S→BbBa. }
考察I0:
FOLLOW(A)={a,b} FOLLOW(B)={a,b} FOLLOW(A)∩FOLLOW(B)= {a,b}
產生規約-規約沖突.
所以該文法不是SLR(1)文法.
總結
以上是生活随笔為你收集整理的编译原理陈意云3-20 (a) 证明下面文法 S→AaAb|BbBa A→ε B→ε 是LL(1)文法,但不是SLR(1)文法。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 12行代码AC——试题 算法训练 猴子吃
- 下一篇: 解题报告——习题2-5 分数化小数(de