FIRST(S) = {a, b}(因为S可以推导出aBc或bc,开头字符为a或b;注意c不能作为FIRST(S)的元素,因为只有当A和B都推导出ε时c才可能是S的开头字符,但这种情况下S的开头字符实际上是A和B可能推导出的字符,即a或b)。 FOLLOW集: FOLLOW(S) = {#}(因为S是开始符号,所以其后跟随的是识别符号#)。 FOLLOW(A...
1. 在所要求的字符产生式的右边的第一位寻找终结符,假设该字符产生式集的第一位就是终结符,那么该终结符就是所要求的first集;2. 假设产生式的右边第一位是非终结符,那么继续寻找该非终结符的first集,直至寻找到一个终结符,即是起初所要求字符的first集;Follow集的计算就相对first集稍微难一点:follow集...
这里,First(β)表示β能推导出的第一个终结符或非终结符的集合,但要去掉ε。 如果β可以推导出ε,则将FOLLOW(A)加至FOLLOW(B)中。这意味着,如果B有可能是最后一个符号,那么A的FOLLOW集合应该加入到B的FOLLOW集合中。 反复使用上述规则,直到所求FOLLOW集合不再增大为止。 以上是对FIRST集合和FOLLOW集合求法的...
1)、将First(Yi)加入到First(X)中, 2)、如果#包含着First(Yi)中,i++,重复1); 3)、如果#不包含在First(Yi)中,First(X)计算完成; (3)、如果Xà#(空串)是一个产生式,那么将#加入到First(X)中。 Follow:(看在右边有B的产生式) (1)、将$放入到Follow(S)中,其中S是开始符号,而$是输入右端结束...
First集合最终是对产生式右部的字符串而言的,但其关键是求出非终结符的First集合,由于终结符的First集合就是它自己,所以求出非终结符的First集合后,就可很直观地得到每个字符串的First集合。 follow集的求法,如果产生式中包含ε,则求出follow,否则是不需要求follow集的。
FIRST集和FOLLOW集求法 龙书算法:First:(1)、如果X是终结符,那么First(X) = X;(2)、如果X是⾮终结符,且XàY1Y2...Yk是⼀个产⽣式,其中k>=1;那么如果对于某个I, a在First(Yi)中,且#(空串)在所有 的First(Y1)…..First(Yi-1)中,就吧a加⼊到First(X)中。(3)、如...
first(x) follow集 定义智能推荐【编译原理】语法分析LL(1)分析法的FIRST和FOLLOW集 近来复习编译原理,语法分析中的自上而下LL(1)分析法,需要构造求出一个文法的FIRST和FOLLOW集,然后构造分析表,利用分析表+一个栈来做自上而下的语法分析(递归下降/预测分析),可是这个FIRST集合FOLLOW集看得我头大。。。 教...
题目 求G'中每个非终结符的FIRST集合和FOLLOW集合;(5分)3.构造预测分析表。(5分) 相关知识点: 试题来源: 解析答:1、S→aBCD|cdB→bB’B’→bB’|空D→dD’ D’→空|D 2、FIRST(S)={a,c}FOLLOW(S)={#}FIRST(B)={b}FOLLOW(B)={c}FIRST(B’)={b,空}FOLLOW(B’)={c}...
1. $ ∈ follow(E) 2. follow(T) = {+, $} follow(E) = first(T) ∪ {+, $} follow(E) = {+, a, $} 3. follow(E) = {+, $} 那么最终E的follow集合就是{+, a, $}。 总结 通过以上介绍,我们可以看到,first集合和follow集合的求法是非常简单的,但同时也是语法分析器构建过程中不可...
First集合的求法: First集合最终是对产生式右部的字符串而言的,但其关键是求出非终结符的First集合,由于终结符的First集合就是它自己,所以求出非终结符的First集合后,就可很直观地得到每个字符串的First集合。 1. 直接收取:对形如U-a…的产生式(其中a是终结符),把a收入到First(U)中 ...