省略号代表其他相关产生式得出的终结符号,一开始的时候,省略号里面是没有的
 
求FIRST集
情况壹  如果A只在→的右边出现,那么FIRST(A)={A},例子M→α,FIRST(α)={α}
情况貳  对于A→BCDEFG,
               一 如果无B→ε,那么FIRST(A)={……}∪FIRST(B),接着求FIRST(B)
               二 如果有B→ε,那么FIRST(A)={……}∪(FIRST(B)-{ε})∪FIRST(CDEFG),接着分别求FIRST(B)-{ε}、FIRST(CDEFG)
情况叁 如果G→ε,那么FIRST(G)={……}∪{ε}
 
求FOLLOW集
情况壹 如果S是开始符号(一般是第一个产生式),那么FOLLOW(S)={……,$} 
情况贰     一 如果有产生式A→αBCD,且ε不属于FIRST(CD)那么FOLLOW(B)={……}∪(FIRST(CD))
             二 如果有产生式A→γBCD,且ε属于FIRST(CD)那么FOLLOW(B)={……}∪(FIRST(CD)-{ε})∪FOLLOW(A)
情况叁  如果有产生式M→CDB,那么FOLLOW(B)={……}∪FOLLOW(M) 
 
 
例子
对于文法G[A]
A→BCc|gDB   
B→bCDE|ε
C→DaB|ca
D→dD|ε
E→gAf|c
 
FIRST集先看→左边
FIRST(A)=FIRST(BCc)∪FISRT(gDB)
               =(FIRST(B)-{ε})∪FIRST(Cc)∪{g}
              ={b}∪FIRST(DaBc)∪FIRST(cac)∪{g} 
              ={b}∪FIRST(dDaBc)∪FIRST(aBc)∪{c}∪{g}
              ={b,d,a,c,g}
FIRST(B)=FIRST(bCDE)∪FIRST(ε)
              ={b,ε}
FIRST(C)=FIRST(DaB)∪FIRST(ca)
               =FIRST(dDaB)∪FIRST(aB)∪{c}     相当于(FIRST(D)-{ε})∪FIRST(aB)∪{c}
              ={d,a,c}
FIRST(D)=FIRST(dD)∪FIRST(ε)
               ={d,ε}
FIRST(E)=FIRST(gAf)∪FIRST(c)={g,c}
-------------------------------------------------------------------------------------------------------
FOLLOW集先看→右边
FOLLOW(A)={$}∪{f}={f,$}
FOLLOW(B)=FIRST(Cc)∪FOLLOW(A)∪FOLLOW(C)
                      ={d,a,c}∪{f,$}∪FOLLOW(C)先去求FOLLOW(C)再来补
                      ={a,c,d,g,f,$}
FOLLOW(C)={c}∪FIRST(DE)
                      ={c}∪{d}∪FIRST(E)
                     ={c,d,g}
FOLLOW(D)=(FIRST(B)-{ε})∪FOLLOW(A)∪FIRST(E)∪{a}∪FOLLOW(D)
                     ={b}∪{f,$}∪{g,c}∪{a}
                     ={a,b,g,c,f,$}
FOLLOW(E)=FOLLOW(B)={a,c,d,g,f,$}

FIRST集和FOLLOW集的更多相关文章

  1. 编译原理-First集和Follow集

    刚学first集和follow集的时候,如果上课老师没有讲明白或者自己没听明白,自己看的时候还真是有点难理解,不过结合着具体的题目可以理解的更快. 先看一下两种集合的求法: First集合的求法:   ...

  2. 求FIRST集和FOLLOW集

    花了点时间弄了个大概,希望对和我一样的人有所帮助.   文法如下: E -> TE'E' -> +TE'|εT -> FT'T' -> *FT'|εF -> (E)|id ...

  3. 编译原理 First集和Follow集的求法

    转载地址 https://blog.csdn.net/Alexander_Frank/article/details/51280798 自上而下分析: FIRST集求法 First集合最终是对产生式右 ...

  4. FIRST集和FOLLOW集,FIRSTVT集和LASTVT集的求法

    学习编译原理时, 这几个集合相信大家并不陌生:FIRST.FOLLOW.FIRSTVT.LASTVT. 其中First和Follow是一对,而Firstvt和Lastvt是一对. 它们的作用分别是: ...

  5. 怎样求FIRST集、FOLLOW集和SELECT集

    一,要知道什么是终结符和非终结符. 终结符:通俗的说就是不能单独出现在推导式左边的符号,也就是说终结符不能再进行推导. 非终结符:不是终结符的都是非终结符.(非男即女,呵呵) 如:A-->B,则 ...

  6. LUA中将未分类数据分为测试集和训练集

    require 'torch' require 'image' local setting = {parent_root = '/home/pxu/image'} function list_chil ...

  7. 简单的FOLLOW集演示程序

    /* * 该程序用于计算某个非终结符的 FOLLOW 集合 * RexfieldVon * 2013年6月30日16:02:47 */ #include <stdio.h> #includ ...

  8. 【编译原理】语法分析LL(1)分析法的FIRST和FOLLOW集

    近来复习编译原理,语法分析中的自上而下LL(1)分析法,需要构造求出一个文法的FIRST和FOLLOW集,然后构造分析表,利用分析表+一个栈来做自上而下的语法分析(递归下降/预测分析),可是这个FIR ...

  9. 机器学习入门06 - 训练集和测试集 (Training and Test Sets)

    原文链接:https://developers.google.com/machine-learning/crash-course/training-and-test-sets 测试集是用于评估根据训练 ...

随机推荐

  1. Memcache存储大数据的问题

    Memcached存储单个item最大数据是在1MB内,假设数据超过1M,存取set和get是都是返回false,并且引起性能的问题. 我们之前对排行榜的数据进行缓存,因为排行榜在我们全部sql se ...

  2. 配置 Struts2 Hello World

    http://javaweb.group.iteye.com/group/wiki/1505-struts2-under-helloworld---how-to-make-the-first-of-t ...

  3. css实现div块半透明

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. jquery全选,jquery全不选,jquery反选

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. ECshop网点程序优化-后台添加类目自动选择上次父类目并计算Sort Order

    如果在ECshop后台批量添加过大量类目的人都能体会到是多么的不方便(这点还是要说一下ECshop的产品经理,细节上还是要多注意),每次添加都需要在几百个类目里面找到要添加的父类目也是一个麻烦事,比如 ...

  6. SQL注入原理二

    随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多. 但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候 ,没有对用户输入数据的合法性进行判断,使应用程序存 ...

  7. IE浏览器窗口合并

    百度经验:如何在IE上设置多窗口合并为单窗口(可切换)?

  8. MVC-Razor引擎布局

    ViewBag.Title:标题 layout: @ViewBag.Title view: @{ViewBag.Title="标题"} @RenderBody():视图的内容直接渲 ...

  9. 一步步学习ASP.NET MVC3 (12)——FileResult

    请注明转载地址:http://www.cnblogs.com/arhat 忙了两天,本来老魏昨天就应该写出新的文章,但是由于昨天雨夹雪而且加上昨天晚上加了班,到家都没饭吃了,一看时间都9点了,什么饭店 ...

  10. 一步步学习NHibernate(1)——NHibernate介绍

    请注明转载地址:http://www.cnblogs.com/arhat 第十五章 从本章开始,老魏将给大家一起学习NHibernate这个流行的ORM框架,本来老魏想要和大家一起探讨微软的EF框架的 ...