编译原理 设有文法G(S)
编译原理 设有文法G(S)
设有文法G(S):
1.\x05E→E+T
2.\x05E→T
3.\x05T→id
1) 该文法含有左递归吗?若有,消除它.
2) 改造后的文法是LL(1)文法吗?若是,给出其预测分析表.
题目没给错么?没有出错 题目就是这样的,我是从WORD里复制出来的我知道了。我刚才分析错了。我正在做,做完我马上要出去了。首先,因为E->E+T,所以该文法含有左递归。消除左递归后变为: E->TE1 E1->+TE1 E1->ε T->id 再者,求出所有非终结符的Follow和first集,并最终求出select集 first(E) = first(TE1)=first(T)=first(id) = {id} first(E1) = first(+TE1)∪{ε} = {+,ε} first(T) = first(id) = {id}follow(E) = {#} follow(E1) = follow(E) = {#} follow(T) = first(E1)/{ε}∪follow(E1)={+,#}则select(E->TE1) = Fisrt(TE1) = first(T) = {id} select(E1->+TE1) = first(+TE1) = {+} select(E1->ε) = first(ε)/{ε}∪follow(E1)=follow(E1)={#} select(T->id) = first(id) = {id} 发现同一个非终结符号E1的两个select集(select(E1->+TE1)和select(E1->ε))不相交,故而这是一个LL(1)文法 则,预测分析表为:+id#EE->TE1E1E1->+TE1 E1->εT T->idfirst、follow和select集会求么?我省略咯。