编译原理follow集与first集的计算

下面我将介绍一下我关于LL(1)文法部分的计算文法非终结符First集以及Follow集两个知识点的理解。

首先是First集的计算部分,计算First集首先看我们原文法的左边,原文法左边不重复的都要进行First集的计算,计算时具体有以下三种情况

(1)先看产生式后面的第一个符号,如果是终结符,那就可以直接把它写到这个产生式的First集中,例如:产生式为M->nDc,那在First集中我们就可以直接写上First (M)={ n };

(2)如果产生式后面的第一个符号是非终结符,就看这个非终结符的产生式,看的时候同样利用前面的两种看法;但是当产生式为ε时,则需要把ε带入到待求First集的元素的产生式中再判断。例如:A->Bc; B->aM;B->ε,求First(A)时,我们看到A的第一个产生式中的第一个符号是B,B是一个非终结符,所以我们就要接着看B的产生式,B的第一个产生式的第一个符号为a,a是一个终结符,直接把a写入First(A),B的第二个产生式为ε,把ε带入A->Bc中,A->c(注意:如果将B->ε带入表达式后A的产生式为A->ε,ε不可以忽略),c是终结符,所以把c也写入First(A),最后First (A)={ a,c }。

(3)当产生式右边全为非终结符,且两个非终结符又都可以推出ε时,我们需要把这个产生式的所有情况都列出来,再分析。例如:A->BC;B->b|ε;C->c|ε。我们把A的所有产生式利用上述两种方法列出来就是A->bc,A->b;A->c,A->ε;最后First (A)={b,c, ε}。

接下来介绍一下Follow集的部分,先简单介绍一下计算Follow集的大致规则。比如我们要求Follow(X),文法中多个产生式中含有X,则需要考虑多种情况,以下是具体计算时的三种情况:

(1)文法开始符:所有文法开始符的Follow集中都有一个#。

(2)S->αB的形式:求Follow(B),因为B的后面为空,把Follow(S)写入B的Follow集中。

(3)S->αBβ的形式:求Follow(B),B后部不为空。

①当β是终结符时,直接把β写入Follow(B)。

②当β是非终结符时,将First (β)(如果First(B)中有ε,就把ε删掉)写入Follow(B)中。(需要注意的是:如果β->ε,那么原产生式就变成了S->αB,也就是第二种情况,这两种情况都要算在Follow(B)中)。

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年6月14日
下一篇 2022年6月14日

相关推荐

  • LPL全华班的救赎!TES复仇战横扫AL,小天将功补过,上路又单杀了

    各位LPL的观众和英雄联盟召唤师大家好,这里是天下游戏汇。 在刚刚结束的LPL焦点之战中,TES在面对“宿敌”AL的情况下,是终于展现出了强队本色,两场比赛以2-0的比分干净利落地…

    2022年6月30日
  • 六年级范文 六年级,我多了一份……

    范文一:六年级,我多了一份压力 时光匆匆,不知不觉,我已从一个一年级的小胖墩长成六年级的小小少年。六年级的我,也多了一份属于我自己的“压力”。 升上六年级,作业繁多,试卷很难,时间…

    2022年6月23日
  • 对于这四类人群,建议购买智能锁

    智能锁作为一种能够提高家庭安全性,给用户带来良好体验的智能产品,近年来备受消费者青睐,其市场销售也十分火爆。 每个产品都有固定的消费群体,对于经销商来说,准确定位智能锁的消费群体,…

    2022年6月13日
  • 7月乘用车市场继续大涨,越野车火爆,两个新造车企业停产

    一、整体市场 7月,乘用车销量继续上涨42%,6月份同比上涨43%,通过减税刺激车市,利好当前,利空明年,部分消费者会把明年的购车需求挪到今年 7月,销量top20车企,销量同比下…

    2022年8月14日
  • 提醒你该换手机的4个忠告:别犹豫,出现2点以上就说明真的该退休

    手机再好用,退休那也是迟早的事,所以很多时候,如果我们发现自己的手机出现一些大毛病时,别犹豫,提前做好备份,别等那些重要的数据丢失了再追悔莫及! 今天好物君要说的,就是手机寿命将近…

    2022年6月22日
  • 之前有过胎停史,再次怀孕需要保胎吗?

    胎停育,指的是胚胎停止发育。 有经历过的孕妈表示:“莫名其妙就胎停了,为什么会这样呢?”这对于孕妇来说是一个很大的打击…… 所以有很多人会有这样的疑问:“当再次怀孕后需要保胎吗?”…

    2022年8月18日
  • 这个颜色低调不挑人,3个配色影响心理健康,6套出彩配色穿出品味

    大家好!我是形象顾问赵Sir,男士穿搭不能凭感觉,关注我!科学穿搭从了解自己和服饰的特征开始! 如果你怕穿错颜色、想穿搭低调又有品味那今天的这个颜色及搭配方案一定要看完,这个颜色不…

    2022年7月15日
  • 王者荣耀:排位时遇到这几种情况,那么恭喜你,多半是遇到人机了

    王者荣耀中有人机玩家,如今已经是一个心照不宣的秘密,虽然官方将人机玩家隐藏的很好,但是 AI系统毕竟不是真人,总会露出一些蛛丝马迹,有时候我们在游戏中就会有所疑惑,为什么那些队友的…

    2022年7月9日
  • Python 点滴5 文件读写举例-生成测验试卷

    几个小知识:(程序中使用到了) random.shuffle() 函数 : 方法将序列的所有元素随机排序 radom.sample(a,n)函数:从序列a中随机抽取n个元素,并将n…

    2022年9月9日
  • Java多线程配置知识点

    多线程在现在工作中出现越来越频繁、需要我们熟记并且能熟练地使用之、对相关线程池的一些配置需要我们非常熟悉。 1. 参数详解 1.1 corePoolSize corePoolSiz…

    2022年7月3日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息