编译原理中的follow集怎么计算

如题所述

第1个回答  2019-12-30
follow集看产生式右边,紧跟它其后的字符。

①紧跟的为终结符(小写),直接将其加入follow集。
②紧跟的为非终结符(大写),看此非终结符的first集,把first集加入到follow集,注意若first集包含ε(空符号串),则去掉ε,并且把产生式左边非终结符follow集也加入到follow集。
③后无,则产生式左边非终结符follow集加进去。
注:follow集无ε。开始符(一般S)follow集记得一定要加上#。
over,其实first集更麻烦。
第2个回答  推荐于2017-06-01
FOLLOW(A)
指的是所有包含A的句型中,直接跟在A后面的终结符或#的集合。
举例:
对于文法G(S)
1.S->L=R
2.S->R
3.L->*R
4.L->i
5.R->L
要求L的FOLLOW集,则首先要找出所有包含L的句型
根据产生式1可知有句型L=R
将产生式5带入1或2中有L=L或L
则L的FOLLOW集就是上边所有包含L句型中L后边紧跟着的终结符,如果L在句型的结尾则#包含在其FOLLOW集中
所有FOLLOW(L)={=,#}

希望我的回答能帮到楼主~本回答被网友采纳
相似回答