First, Follow 集

原创 2016年09月05日 14:02:43

参考 http://www.cppblog.com/woaidongmao/archive/2010/02/22/108242.html

First集:

1. 非终结符(表达式左侧的大写字母)的推导式如果含有终结符(小写字母、运算符、ε),则将推导式里所有终结符作为这个非终结符的First 集 , 例如
由式

E+TEϵ
推出
First(E)={+,ϵ}

2. 非终结符的推导式全是非终结符, 则该非终结符的First 集等于推导式里第一个非终结符分First集, 例如
由式

ETE
TFT
F(E)|id
推出
First(E)=First(T)=First(F)={(,id}
3. 终结符的First集是自身

Follow集

Follow集合是针对非终结符而言的,Follow(U)所表达的是句型中非终结符U所有可能的后随终结符号的集合,特别地,“#”是识别符号的后随符。注意Follow集合是从开始符号S开始推导。

1. 直接收取:注意产生式右部的每一个形如“…Ua…”的组合,把a直接收入到Follow(U)中。因a是紧跟在U后的终结符。

2.直接收取:对形如“…UP…”(P是非终结符)的组合,把First(P)直接收入到Follow(U)中【在这里,如果First(P)中有空字符,那么就要把左部(假设是S)的Follow(S)送入到Follow(U)中。还有就是Follow集中是没有空字符的】。

3. 直接收取:若S->…U,即以U结尾,则把Follow(S)直接收入到Follow(U)(这里,参考文章有误)

4. 开启表达式的那个起始符 的Follow集是{#}
5.反复传送:对形如U->…P的产生式(其中P是非终结符),应把Follow(U)中的全部内容传送到Follow(P)中。

相关文章推荐

first,follow集

  • 2014年05月20日 19:30
  • 12KB
  • 下载

求非终结符的first集和follow集

  • 2013年04月09日 22:27
  • 19KB
  • 下载

编译原理中的first,follow和select集的求法

本文转载自http://blog.csdn.net/u014374031/article/details/50239667 所有大写字母代表非终结符,小写字母代表终结符,省略号代表未知数目(可能...

编译原理课程设计FIRST集FOLLOW集

  • 2009年06月01日 20:01
  • 225KB
  • 下载

编译原理JAVA求First集Follow集

  • 2012年04月03日 15:47
  • 14KB
  • 下载

编程实现计算FIRST集和FOLLOW集C++之(二)处理候选式:右部为空

之前处理了把右部有多个候选式的分割成了单独一行。 这其中第3、6行,候选式的右部为空,由求解First集的算法可知,此时可以直接把“ε”加入当前候选式左部非终结符的First集中。并且可以在操作...

求first集和follow集

  • 2012年11月12日 16:06
  • 120KB
  • 下载

编译原理 求first集与follow集

  • 2011年11月04日 20:06
  • 5KB
  • 下载

怎样求FIRST集与FOLLOW集

最近马上要步入考试周了,编译原理的这个Follow集一直令我头大啊,今天百度了下下,找到一篇文章,看了以后我瞬间就明白了如何求解Follow集~~哈哈,如果你也不知道如何求解Follow集,请看看下面...

FIRST集和FOLLOW集的求法~

  • 2011年06月20日 18:41
  • 2.91MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:First, Follow 集
举报原因:
原因补充:

(最多只允许输入30个字)