转载地址

https://blog.csdn.net/Alexander_Frank/article/details/51280798

自上而下分析:

FIRST集求法

First集合最终是对产生式右部的字符串而言的,但其关键是求出非终结符的First集合,由于终结符的First集合就是它自己,所以求出非终结符的First集合后,就可很直观地得到每个字符串的First集合。

1. 直接收取:对形如U->a…的产生式(其中a是终结符),把a收入到First(U)中

2. 反复传送:对形入U->P…的产生式(其中P是非终结符),应把First(P)中的全部内容传送到First(U)中【意思就是只需要把第一个非终结符的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(U)

4.*反复传送:对形如U->…P的产生式(其中P是非终结符),应把Follow(U)中的全部内容传送到Follow(P)中。

当构造完这两个集合,则开始构造文法分析表

对每一个产生式A->XXX,执行

(1)对First(A)中的每一个终结符a,把A->XXX加入M[A,a]中。

(2)若‘空’在First(A)中,把Follow(A)的每一个终结符b(包括$),把A->XXX加入M[A,b]中。剩下为错误条目,空白处理。

编译原理 First集和Follow集的求法相关推荐

  1. 最全!最完整的求first集和follow的代码!!!编译原理 FIRST集和FOLLOW集的求法 代码,程序,实验报告

    DEV C++ 项目实现 不会建项目的看这个-->如何创建项目 代码链接:https://pan.baidu.com/s/1VNdrSMXaKu3HI0UQ_TInUQ 提取码:b1qz 使用教 ...

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

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

  3. [编译原理]FIRST集合FOLLOW集的介绍和求解

    一.定义 1.FIRST集:看产生式左部 FIRST(α) = {a | α ⇒∗\stackrel{*}\Rightarrow⇒∗a···,a∈VTV_{T}VT​} FIRST(α)是α的所有可能 ...

  4. 如何求FIRST集和FOLLOW集

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

  5. 【编译原理】FIRST集和FOLLOW集构造法速学

    编译原理速成大法 FIRST集和FOLLOW集构造法速成 FIRST FOLLOW FIRST集和FOLLOW集构造法速成 例:对于文法G(E) 首先像E,T,E',F这样的就是非终结符 +,*, ε ...

  6. 【编译原理笔记05】语法分析:FIRST集和FOLLOW集的计算,[非]递归的预测分析法,预测分析中的错误处理

    本次笔记内容: 4-4 FIRST集和FOLLOW集 4-5 递归的预测分析法 4-6 非递归的预测分析法 4-7 预测分析法中的错误处理 本节课幻灯片,见于我的 GitHub 仓库:第5讲 语法分析 ...

  7. 【编译原理】First集和Follow集简易解释(偏人话)

    \ε:非ε元素 First集和Follow集是集合 First集规则(相应字母在->左边,查找->右边第一个东西) ①A->aB,a加进First(A): (->右边第一个是终 ...

  8. FIRST集和FOLLOW集的构造

    FIRST集和FOLLOW集的定义 注意:1:FIRST集的定义中\(\alpha和\beta\)可以是终结符也可以是非终结符.2:FOLLOW集的定义中\(\mu和\beta\)可以是终结符也可以是 ...

  9. FIRST集和FOLLOW集

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

最新文章

  1. Linux服务器文件描述符最大值修改
  2. Mac下安装MariaDB(自用备忘)
  3. 17_clickhouse分布式集群部署
  4. vant toast 指定挂载到指定位置_docker卷挂载技术
  5. 直面PHP微服务架构挑战
  6. linux配置utf-8环境
  7. GDB中创建要素数据集
  8. RHEL 8 - 安装 webconsole
  9. oracle改成归档模式_将Oracle数据库改为归档模式并启用Rman备份
  10. PCB Layout总结
  11. Ubuntu 18.04卸载旧版本英伟达显卡驱动
  12. Syncthing - 远程文件实时同步(P2P)工具简介、安装及使用
  13. 简单的数据库造数据方法
  14. NodeJS 搭建图形识别功能
  15. xamp配置多域名站点
  16. idea 选中代码生成方法
  17. vue简易微前端项目搭建(二):子项目模板及项目脚手架搭建
  18. Polkadot波卡链众筹成本价与总量、创始人团队简介
  19. 传奇Newoupui-pak配置失败怎么处理?
  20. python基础-进制

热门文章

  1. 谈谈自己为公司设计的jmeter自动化部署框架
  2. 系统压缩文件中字母都表示什么意思
  3. 节点中心性(关键点)
  4. LINUX 不删除指定文件其余文件全部删除
  5. 鸿蒙方将拊脾雀跃而游拼音,《庄子》全译(原文注释译文)61
  6. cai.php是什么东西,cai是指计算机的什么
  7. php c++多态区别,【总结】C++多态性与虚函数
  8. Can't connect to MYSQL server on ''(10060)解决方式汇总
  9. 3D电视已死 4K和曲面屏成厂商下一个目标
  10. JOffice协同办公开发平台