文章目录

  • `FIRST`集的计算
    • 计算`FIRST(x)`
      • 具体算法
    • 计算`$X_21,X_2,X_3,...,X_n$`的`FIRST`集
  • FOLLOW集的计算
    • 算法

FIRST集的计算

计算FIRST(x)

  • FIRST(X):可以从X中推导出的所有串首终结符构成的结合。
  • $X\Rightarrow^*{\epsilon}$,那么$\epsilon \in FIRST(X)$

推导过程:

  1. (2)、(4)、(5)的产生式都是以非终结符开头,于是直接分别将$+,\epsilon$$*,\epsilon$$(, id$加入到它们各自的FIRST集中。
  2. (1)中开头的是非终结符T,于是它的FIRST集取决于T的FIRST集
  3. (3),同上,它的FIRST集需要依赖F的FIRST集,即$(, id$
  4. 于是(1)的FIRST集也是$(, id$

具体算法

计算$X_21,X_2,X_3,...,X_n$FIRST

  • $FIRST(X_1,...,X_n)$加入$IRST(X_1)$中所有非$\epsilon$符号
  • 如果$\epsilon$$FIRST(X_1)$中,再加入$FIRST(X_2)$中的所有非$\epsilon$符号,以此类推
  • 最后,如果对所有的i,$\epsilon$都在$FIRST(X_i)$中,那么将$\epsilon$加入到$FIRST(X_1,...,X_n)$中。

FOLLOW集的计算

算法

FIRST集和FOLLOW集的计算相关推荐

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

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

  2. FIRST集和FOLLOW集的构造

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

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

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

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

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

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

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

  6. LL(1)文法中FIRST集和FOLLOW集的计算方法

    文章目录 深入理解 FIRST集的定义 FIRST集的实际意义 FIRST集的计算方法 FOLLOW集的定义 FOLLOW集的实际意义 FOLLOW集的计算方法 预测分析表的实质 LL(1)文法的判断 ...

  7. 编译原理中LL(1)文法求FIRST集和FOLLOW集的方法

    一.求FIRST集 1.右部首个字符是终结符则加入左部字符的FIRST集中,比如对形如U->a-的产生式(其中a是终结符),把a收入到FIRST(U)中. 2.右部首个字符是非终结符, 若此非终 ...

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

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

  9. FIRST和FOLLOW集的计算

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

最新文章

  1. gpgpu-sim卡分配程序设计实例分析
  2. Windows 10下编译安装Hadoop2.6
  3. 热烈庆祝 ubuntu10.10发布
  4. oracle ora-12546,window10上登录Oracle时提示ORA-12546:Permission denied
  5. 动图-完整清晰展示TCP的三次握手与四次挥手
  6. 内连接(INNER JOIN)
  7. 199. Binary Tree Right Side View
  8. android目录穿越,安卓导航之Oruxmaps系列教程
  9. JS 中引号多级嵌套
  10. matlab for 循环中怎么做到只取其中一个数_公益心 码客行(8)—— 循环语句
  11. 用acdsee制作html,应用文论文写作 - - 计算机 - 计算机网络 - ACDSee的HTML相册生成...
  12. 【React】利用Dooringx快速制作H5搭建平台
  13. 山东省第二届数据应用创新大赛日照赛区-公积金贷款逾期预测-赛后总结
  14. linux系统安装geany文本编辑器
  15. Android Studio 编译时报文件不能删除,编译失败
  16. mysql手动中止查询语句
  17. open source软件:Nomad介绍(任务编排工具)
  18. RabbitMQ解决消息幂等性问题
  19. #今日论文推荐#CVPR 2022 | 只需要一组预训练参数,所有恶劣天气一次解决
  20. vmware虚拟机15 安装centos764 并且配置网络

热门文章

  1. 决策树剪枝算法:REP/PEP/CCP算法
  2. 手机也能拍出艺术品?大师镜头,“真”突破了不少
  3. 考研咨询周是什么?应该如何咨询?
  4. 【笑小枫的SpringBoot系列】【十五】SpringBoot根据模板生成Word
  5. 内核模式 vs 用户模式
  6. 第二课、《抓包学习——美团评论》
  7. 利用HomeTabModeHelper2分钟快速搭建Tab+Fragment主页框架
  8. 小程序开发系列之基础部分-开发工具
  9. 如何防止头文件被重复包含、嵌套包含
  10. 谷歌身份验证器验证码不对怎么回事_谷歌相机安装教程,让你的手机拥有谷歌般强大的夜拍能力...