对于First集合,follow集合的构造方法,我引用的是国防科技大学王挺老师的方法,我觉得这个讲的比较详细易懂;
下面用一道例题进行应用;
求 E->T|E+T T->F|T*F F->i |(E)
的所有产生式的Follow集合,所有产生式右部的First集合。
第一步,消除左递归;
上式转化为:
(1)E->TE’
(2)E’->+TE’
(3)E’->ε
(4)T->FT’
(5) T’->*FT’
(6)T’->ε
(7)F->(E)
(8)F->i
FIRST(E)=FIRST(T)=FIRST(F)={ (,i}//由于T推导不出ε,所以后面的FIRST(E’)不加入FIRST(E),同理,(4)中的first(T’)不加入FIRST(T)。
FIRST(E’)={+,ε}//由于E’的推导中第一个字符就是+,为终结符,扫描后,first停止。(个人想法)
编译原理之First集合,Follow集合
最新推荐文章于 2022-05-25 16:38:22 发布
本文介绍了国防科大王挺老师关于First集合和Follow集合的构造方法,并通过一个例题详细解释了如何消除左递归,以及如何计算各产生式的First集合和Follow集合。在例题中,分析了每个符号的First和Follow集合,并讨论了它们的形成规则。
摘要由CSDN通过智能技术生成