编译原理陈意云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)={b}
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