编译原理 龙书答案
goto(I9, *) = I7 goto(I9, () = I2 goto(I9, a) = I3 goto(I9, b) = I4
FOLLOW(R)={ |, *, (, ), a, b, $}
对于状态5,几种冲突分别表示以下含义(用 表示连接操作): …R R|…,…R R*…,…R R (…,…R R a…,…R R a… 显然,除了第二种情况,均应选择归约操作 对于状态9,冲突含义为:
…R|R|…,…R|R*…,…R|R (…,…R|R a…,…R|R a… 除了第一种情况,均应选择移进操作
(Aho)4.46 a) 为下面文法构造SLR分析表,解决冲突,使得与图4-52同样方式分析 E→E sub R | E sup E | { E } | c R→E sup E | E 解:拓广 E'→E
构造LR(0)项目集规范族
I0={ E'→ E, E→ E sub R, E→ E sup E, E→ { E }, E→ c } goto(I0, E)= { E'→E , E→E sub R, E→E sup E }=I1
goto(I0, {)= { E→{ E }, E→ E sub R, E→ E sup E, E→ { E }, E→ c }=I2 goto(I0, c)= { E→c }=I3
goto(I1, sub)= { E→E sub R, R→ E sup E, R→ E, E→ E sub R, E→ E sup E, E→ { E }, E→ c }=I4
goto(I1, sup)= { E→E sup E, E→ E sub R, E→ E sup E, E→ { E }, E→ c }=I5 goto(I2, E)= { E→{ E }, E→E sub R, E→E sup E }=I6 goto(I2, {)= I2