First集Follow集通俗易懂的讲解加实例
来源:互联网 发布:php九九乘法表代码视频 编辑:程序博客网 时间:2024/06/05 11:46
文法:
S→ABcA→a|εB→b|ε
能由非终结符号推出的所有的开头符号或可能的ε,但要求这个开头符号是终结符号。如此题A可以推导出a和ε,所以FIRST(A)={a,ε};同理 FIRST(B)={b,ε};S可以推导出aBc,还可以推导出bc,还可以推导出c,所以FIRST(S)={a,b,c}
如求A的Follow集 产生式:S→ABc A→a|ε ,但只有S→ABc 有用。跟随在A后年的终结符号是FIRST(B)={b,ε},当FIRST(B)的元素为ε时,跟随在A后的符号就是c,所以 Follow(A)={b,c} 同理Follow(B)={c}
上述如果没看懂的话,下面的讲解也可以作为参考
First
如A->aB | CD
这里面包含了组成First(A)的两种情况:
以终结符开头, 当然要把这个终结符放到A的First里
以非终结符开头, 先把C的First放到A的First里
再看如果C的First中有空的话就把D的First放到A的First里,如果D也有空的话往后依次类推
技巧:First一般从下往上找。
如果要找A的First,我们要找A的定义式,即A在左边的式子,看着他的右边来找。
Follow
如S->(L) | aL | LC
找Follow的三种情况:先在候选式(右边)中找到该非终结符,如L(注意例中只有一个定义,但找Follow要看到所有右边出现该非终结符的)
如果L的右边是终结符, 那么这个终结符加入L的Follow
如果L的右边是非终结符, 那么把这个非终结符的First除去空加到L的Follow中
如果L处在末尾, 那么,'->'左边符号的Follow成为L的Follow
另外要注意的是:
开始符号的Follow中要加上‘#’
技巧:Follow一般从上往下找。
如果要找L的Follow,要从式子的右边找到L,然后来找L的Follow,这与First是不同的。
- First集Follow集通俗易懂的讲解加实例
- 编译原理 First集 Follow集 select集 通俗易懂的讲解 + 实例
- 对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集
- shell脚本编程学习笔记(1)
- android动画之属性动画学习
- 关于Android开发中导出jar包后的资源使用问题解决
- SWIFT是什么意思?
- jquery flot 画柱状图
- First集Follow集通俗易懂的讲解加实例
- 5个典型的JavaScript面试题
- Lucene - Overview
- 1155. Can I Post the lette
- 【BZOJ】【P1976】【BeiJing2010组队】【能量魔方 Cube】【题解】【最小割】
- Zxing调整扫描区域 优化取图速度
- 用Drawerlayout来实现侧滑效果
- snprintf比sprintf好,那么strncpy就比strcpy好?!
- python特殊语句