思路:依次判断是否为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)文法。
猜你喜欢
转载自blog.csdn.net/weixin_43899069/article/details/105754697
今日推荐
周排行