编译原理 第5章 习题与答案2

(2) 在文法G[S]中引入一个新的开始符号S′,且将S′→S作为第0个产生式添加到文法G中,从而得到G的拓广文法G′[S′]:

0.S′→S 1.S→aSa 2.S→a

文法G[S]的LR(1)项目集及DFA如答案图5-9-(2)所示。

I0: S’→·S , #S→·aSa, #S→·a , #aI2: S→a·Sa , #S→a·, #S→·aSa, aS→·a , aSI3: S→aS·a , #SI1: S’→S ·, #aI5: S→a·Sa , aS→a·, aS→·aSa, aS→·a , aaSI6: S→aS·a , aaaI4: S→aSa·, #I7: S→aSa·, a答案图5-9-(2) 文法G[S]的LR(1)项目集及DFA

文法G[S]的LR(1)分析表如答案表5-9-(2)所示。因为分析表中含有多重定义的元素ACTION[I5 ,a]= r2 ,s5 ,所以文法G[S]不是LR(1)文法。

答案表5-9-(2) 文法G[S]的LR(1)分析表

ACTION 状态 a 0 1 s2 # acc S 1 GOTO 2 3 4 5 6 7

s5 s4 r2 ,s5 s7 r1 r2 3 6 r1

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4