编译原理:求First集与Follow集的方法

来源:互联网 发布:网络大学入学考试 编辑:程序博客网 时间:2024/06/05 02:13

明天就要考试了,发现一直理解错了First集与Follow集的解法,贴上比较好理解的……

文法:

S→ABcA→a|εB→b|ε

First集合求法:能 由非终结符号推出的所有的开头符号或可能的ε,但要求这个开头符号是终结符号。如此题A可以推导出a和ε,所以FIRST(A)={a,ε};同理 FIRST(B)={b,ε};S可以推导出aBc,还可以推导出bc,还可以推导出c,所以FIRST(S)={a,b,c}Follow集合的求法:紧跟随其后面的终结符号或#。但文法的识别符号包含#,在求的时候还要考虑到ε。 具体做法是把所有包含你要求的符号的产生式都找出来,再看哪个有用。 Follow(S)={#}如求A的,产生式:S→ABc A→a|ε ,但只有S→ABc 有用。跟随在A后年的终结符号是FIRST(B)={b,ε},当FIRST(B)的元素为ε时,跟随在A后的符号就是c,所以 Follow(A)={b,c} 同理Follow(B)={c}

 临考转个博文,转个好运,明天顺利通过!!!


转自:http://www.kaisir.com/2011/06/compiler-theory-find-first-set-of-sets-and-follow.html

0 0
原创粉丝点击