一道《编译原理》求follow集题目,v文法G[E]:E→T E’→+TE’| e T→FT’ T’→*FT’| e F→(E)|i FOLLOW(E’)=FOLLOW(E)={#,)}怎么求得的?
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/16 21:52:07
一道《编译原理》求follow集题目,v文法G[E]:E→T E’→+TE’| e T→FT’ T’→*FT’| e F→(E)|i FOLLOW(E’)=FOLLOW(E)={#,)}怎么求得的?
一道《编译原理》求follow集题目,
v文法G[E]:
E→T E’→+TE’| e T→FT’ T’→*FT’| e F→(E)|i
FOLLOW(E’)=FOLLOW(E)={#,)}
怎么求得的?
一道《编译原理》求follow集题目,v文法G[E]:E→T E’→+TE’| e T→FT’ T’→*FT’| e F→(E)|i FOLLOW(E’)=FOLLOW(E)={#,)}怎么求得的?
哥们,你这个问题中的一个产生式E’→+TE’| e,应该是E->+TE’ |ε这样吧!否则不可能获得如此结果.
关于求follow集合,龙书中说得很清楚,依据三条规则即可:
1、任何FOLLOW(S)都包含输入终止符号,其中S是开始符号.
适用该条,因此FOLLOW(E’)中包含终止符号#.
2、如果存在产生式,A->αBβ,则将FIRST(β)中除ε以外的符号都放入FOLLOW(B)中.
该条不适用,因为在上述所有产生式中不存在形如E‘->αE’β这样的产生式.
3、如果存在产生式,A->αB,或A->αBβ,其中FIRST(β)中包含ε,则将FOLLOW(A)中的所有符号都放入FOLLOW(B)中.
适用该条,因为存在这样的产生式E->+TE’,使得FOLLOW(E’)=FOLLOW(E)成立.而FOLLOW(E)适用上述第二条,根据产生式F→(E)可求得为FOLLOW(E)={#,)}.
综上,FOLLOW(E’)=FOLLOW(E)={#,)}.