编译原理关于FIRST,FLLOW的问题。

来源:百度知道 编辑:UC知道 时间:2024/05/24 15:51:02
我对这两个概念实在搞不清楚,也不会算,有那位老师会的,请赐教一些。
随便给个文法分析一下。

求FIRST,FLLOW集合的过程是一个递归过程..描述出来很繁琐的,
我打字慢......

编译原理书上有算法的描述的..你自己理解一下,不难的...
不懂的地方最好问身边的同学或老师...当面讲解比较清楚一点.

给你个例子吧:
文法:
E->E+T|T
T->T*F|F
F->(E)|i
按照求文法FIRST,FLLOW的算法,FIRST(E)过程大概是:
1.FIRST(E)=FIRST(E) U FIRST(T) //E,T都是非终结符,所以
继续求First

2.FIRST(T)=FIRST(T) U FIRST(F)//F,T都是非终结符,所以
继续求First

3.FIRST(F)={(,i} //(,i是终结符,得出最后结果.

FIRST(E)={(,i}..

FIRST懂了的话,看FLLOW的算法也就好懂了...

还有什么问题的话...可以发消息给我..

首先你必须明白follow的目的是求什么
follow是求非终结符后面紧跟的那个终结符
如果后面紧跟的那个符号是空那么继续往后推一步
这样就能找出后面的那个终结符
明白了这个再看看书上的例子就好懂了