FIRST集与FOLLOW 集合终极讲解
来源:互联网 发布:淘宝旧版本v3.7.2下载 编辑:程序博客网 时间:2024/05/17 04:31
最近一直在学first集合和follow集合,一直没怎么搞明白,今天花了一点时间搞得差不多了。记录下来~~一下图文法为例:
S->AB
S->bC
A->∑
A->b
B->∑
B->aD
C->AD
C->b
D->aS
D->c
FIRST集合相对FOLLOW集合更好求也更简明,故不在此贴重复first集合方法,下面是follow集合方法:规则如下:
1:若S是文法的开始符号,把{S}加入到follow(S)中。
2:(重点来了)若A->aBβ,那么把first(β)中非空的元素加到follow(B)中。若β能推出∑,也就是这个试子有可能变成A->aB或是β=>∑(这里等号上面有一个*打不出来了),那么就把follow(A)加入到follow(B)中。好勒目前为止,规则叙述完了,那就正式开始写集合吧~
first(S)={∑,a,b}(需要注意的是,S->AB,先走A这条路,A可以推出b和∑,但是由A推出的∑是不能要的,因为后面还有符号,所以继续走B,B可以推出∑和a,而B后面没有符号了,所以可以把∑加进去)
first(A)={∑,b}
first(B)={∑,a}
first(C)={a,b,c}
first(D)={a,c}
产生式右部的first集合就不在列举出来,下面是follow集合:
根据规则:
follow(S)={#}Ufollow(D)
follow(A)=(fist(B)-{∑})Ufollow(S)Ufirst(D)
follow(B)=follow(S)
follow(C)=follow(S)
follow(D)=follow(C)Ufollow(D)
由上式可以得出:follow(S)={#},剩下的可以自己推了,等有时间我再多举几个例子
- FIRST集与FOLLOW 集合终极讲解
- FIRST集合FOLLOW集
- FIRST集合与FOLLOW集合求法
- first集与follow集
- first集与follow集
- FIRST集与FOLLOW集
- 编译原理中FIRST集合与FOLLOW集合的算法
- 怎样求FIRST集与FOLLOW集
- 怎样求FIRST集与FOLLOW集
- 怎样求FIRST集与FOLLOW集
- 怎样求FIRST集与FOLLOW集
- 如何求first集与follow集
- 怎样求FIRST集与FOLLOW集
- First集Follow集通俗易懂的讲解加实例
- 对FIRST集,FOLLOW集,的例题讲解。
- First/Follow集合的求法
- 编译原理FIRST集合FOLLOW集的求法
- 如何求非终结符的FIRST集合FOLLOW集
- 触摸屏G+G,G+P,G+F这些是什么意思?
- 组件模型genius-x
- 希尔排序
- 选择排序
- 2017华为软件精英挑战赛决赛思路分享
- FIRST集与FOLLOW 集合终极讲解
- 快速排序
- 单链表逆置
- hdu4135 容斥原理
- 归并操作(merge),也叫归并算法
- 两小时回顾c++基础
- 插入排序
- jenkins
- 堆排序