编译原理-First集和Follow集
刚学first集和follow集的时候,如果上课老师没有讲明白或者自己没听明白,自己看的时候还真是有点难理解,不过结合着具体的题目可以理解的更快。
先看一下两种集合的求法:
First集合的求法:
First集合最终是对产生式右部的字符串而言的,但其关键是求出非终结符的First集合,由于终结符的First集合就是它自己,所以求出非终结符的First集合后,就可很直观地得到每个字符串的First集合。
1. 直接收取:对形如U-a…的产生式(其中a是终结符),把a收入到First(U)中
2. 反复传送:对形入U-P…的产生式(其中P是非终结符),应把First(P)中的全部内容传送到First(U)中。
Follow集合的求法:
Follow集合是针对非终结符而言的,Follow(U)所表达的是句型中非终结符U所有可能的后随终结符号的集合,特别地,“#”是识别符号的后随符。
1. 直接收取:注意产生式右部的每一个形如“…Ua…”的组合,把a直接收入到Follow(U)中。
2.直接收取:对形如“…UP…”(P是非终结符)的组合,把First(P)除ε直接收入到Follow(U)中。
3.反复传送:对形如P-…U的产生式(其中U是非终结符),应把Follow(P)中的全部内容传送到Follow(U)中。(或 P-…UB且First(B)包含ε,则把First(B)除ε直接收入到Follow(U)中,并把Follow(P)中的全部内容传送到Follow(U)中)
转载于:https://www.cnblogs.com/henuliulei/p/10666498.html
编译原理-First集和Follow集相关推荐
- 编译原理 First集和Follow集的求法
转载地址 https://blog.csdn.net/Alexander_Frank/article/details/51280798 自上而下分析: FIRST集求法 First集合最终是对产生式右 ...
- 最全!最完整的求first集和follow的代码!!!编译原理 FIRST集和FOLLOW集的求法 代码,程序,实验报告
DEV C++ 项目实现 不会建项目的看这个-->如何创建项目 代码链接:https://pan.baidu.com/s/1VNdrSMXaKu3HI0UQ_TInUQ 提取码:b1qz 使用教 ...
- [编译原理]FIRST集合FOLLOW集的介绍和求解
一.定义 1.FIRST集:看产生式左部 FIRST(α) = {a | α ⇒∗\stackrel{*}\Rightarrow⇒∗a···,a∈VTV_{T}VT} FIRST(α)是α的所有可能 ...
- 如何求FIRST集和FOLLOW集
最近马上要步入考试周了,编译原理的这个Follow集一直令我头大啊,今天百度了下下,找到一篇文章,看了以后我瞬间就明白了如何求解Follow集~~哈哈,如果你也不知道如何求解Follow集,请看看下面 ...
- 【编译原理】FIRST集和FOLLOW集构造法速学
编译原理速成大法 FIRST集和FOLLOW集构造法速成 FIRST FOLLOW FIRST集和FOLLOW集构造法速成 例:对于文法G(E) 首先像E,T,E',F这样的就是非终结符 +,*, ε ...
- 【编译原理笔记05】语法分析:FIRST集和FOLLOW集的计算,[非]递归的预测分析法,预测分析中的错误处理
本次笔记内容: 4-4 FIRST集和FOLLOW集 4-5 递归的预测分析法 4-6 非递归的预测分析法 4-7 预测分析法中的错误处理 本节课幻灯片,见于我的 GitHub 仓库:第5讲 语法分析 ...
- 【编译原理】First集和Follow集简易解释(偏人话)
\ε:非ε元素 First集和Follow集是集合 First集规则(相应字母在->左边,查找->右边第一个东西) ①A->aB,a加进First(A): (->右边第一个是终 ...
- FIRST集和FOLLOW集的构造
FIRST集和FOLLOW集的定义 注意:1:FIRST集的定义中\(\alpha和\beta\)可以是终结符也可以是非终结符.2:FOLLOW集的定义中\(\mu和\beta\)可以是终结符也可以是 ...
- [编译原理] 期末复习,求FIRST集和FOLLOW集。简单易懂,例题讲解。
1.终结符和非终结符 终结符:ε.a.b.c.d.+.-.*./.,等非大写字母 非终结符:A.B.C.D.S.- 大写字母. 2.求first集 核心理念:first(A) A能推出的第一个是什么. ...
最新文章
- 240个jquery插件
- 使用Jenkins自动远程调用压测机实现不同用户场景下的并发测试
- SystemImager自动化安装Linux系统(下)
- Spring Cloud Gateway 原生的接口限流该怎么玩
- Person Re-Identification by Multi-Channel Parts-Based CNN with Improved Triplet Loss Function
- ORA-01940:cannot drop a user that is currently connected
- 如何使用DNS反向映射来扫描IPv6地址?
- springmvc处理器及前端控制器介绍
- 人工智能与机器学习的关系---人工智能工作笔记0013
- 【待填坑】LG_3239_[HNOI2015]亚瑟王
- excel转置怎么操作_Excel八问八答,新手入门必修课
- AndroidSDK目录和源码目录详解
- 2021阿里巴巴校招笔试题
- filtering_audio.c/filtering_video.c 解读
- vba oracle 乱码,【VBA研究】用VBA实现excel与Oracle数据库交互
- Ajax之【Ajax异步实现步骤】
- 教你秒建受信任的本地 SSL 证书,彻底解决开发测试环境的无效证书警告烦恼!...
- 错误 不存在从 “std::string“ 到 “LPCSTR“ 的适当转换函数
- 【福利季】《手机历史漫谈》
- 工业互联网-企业数据打通解决方案
热门文章
- SHELL编程之执行环境----邹立巍的博客
- 学习AxureRP的成长之路
- 自定义Dialog(一)
- 应用程序0xc0150002 错误
- c#3.0加入的一些新特性——泛型集合
- C#中as与is的用法
- c#_String.Split 方法进阶篇
- 833 计算机学科专业基础综合,2017年西安电子科技大学计算机学院833计算机学科专业基础综合考研仿真模拟题...
- 数据增强_开源算法FMix:用于深度学习中增强混合样本数据增强
- 菏泽中考报名不报计算机,2020菏泽中考报名人数:94559人