编译原理 求first集 follow集
FIrst集:
FIRST集是一个文法符号串所可能推导出的符号串的第一个终结符的集合
First集合最终是对产生式右部的字符串而言的,但其关键是求出非终结符的First集合,由于终结符的First集合就是它自己,所以求出非终结符的First集合后,就可很直观地得到每个字符串的First集合。
直接收取:对形如U->a…的产生式(其中a是终结符),把a收入到First(U)中
反复传送:对形入U->P…的产生式(其中P是非终结符),应把First§中的全部内容传送到First(U)中【意思就是只需要把第一个非终结符的First集传过去~这个地方是要注意的地方,也是难点】。
Follow集:
FOLLOW集是文法符号后面可能跟随的终结符的集合(不包括空串)
Follow集合是针对非终结符而言的,Follow(U)所表达的是句型中非终结符U所有可能的后随终结符号的集合,特别地,“#”是识别符号的后随符。注意Follow集合是从开始符号S开始推导。
- 直接收取:注意产生式右部的每一个形如“…Ua…”的组合,把a直接收入到Follow(U)中。因a是紧跟在U后的终结符。
2.直接收取:对形如“…UP…”(P是非终结符)的组合,把First§直接收入到Follow(U)中【在这里,如果First(P)中有空字符,那么就要把左部(假设是S)的Follow(S)送入到Follow(U)中。还有就是Follow集中是没有空字符的】。
- 直接收取:若S->…U,即以U结尾,则#∈Follow(U)
4.*反复传送:对形如U->…P的产生式(其中P是非终结符),应把Follow(U)中的全部内容传送到Follow§中。
参考:
https://blog.csdn.net/qq874455953/article/details/84243410
还有一个例子比较详细:
https://blog.csdn.net/qq_35793285/article/details/94378977
编译原理 求first集 follow集相关推荐
- 【编译原理】FIRST集和FOLLOW集构造法速学
编译原理速成大法 FIRST集和FOLLOW集构造法速成 FIRST FOLLOW FIRST集和FOLLOW集构造法速成 例:对于文法G(E) 首先像E,T,E',F这样的就是非终结符 +,*, ε ...
- 【编译原理】First集和Follow集简易解释(偏人话)
\ε:非ε元素 First集和Follow集是集合 First集规则(相应字母在->左边,查找->右边第一个东西) ①A->aB,a加进First(A): (->右边第一个是终 ...
- 编译原理 First集 Follow集 select集 通俗易懂的讲解 + 实例
#First集Follow集通俗易懂的讲解加实例 ##First 如A->aB | CD 这里面包含了组成First(A)的两种情况: 以终结符开头,当然要把这个终结符(a)放到A的First里 ...
- [编译原理] 期末复习,求FIRST集和FOLLOW集。简单易懂,例题讲解。
1.终结符和非终结符 终结符:ε.a.b.c.d.+.-.*./.,等非大写字母 非终结符:A.B.C.D.S.- 大写字母. 2.求first集 核心理念:first(A) A能推出的第一个是什么. ...
- 编译原理求FIRST集、FOLLOW集和SELECT集
所有大写字母代表非终结符,小写字母代表终结符,省略号代表未知数目(可能为0)的不确定类型的文法符号. First集合: First集合顾名思义就是求一个文法符号串所可能推导出的符号串的第一个终结符的集 ...
- 编译原理中LL(1)文法求FIRST集和FOLLOW集的方法
一.求FIRST集 1.右部首个字符是终结符则加入左部字符的FIRST集中,比如对形如U->a-的产生式(其中a是终结符),把a收入到FIRST(U)中. 2.右部首个字符是非终结符, 若此非终 ...
- 如何求FIRST集和FOLLOW集
最近马上要步入考试周了,编译原理的这个Follow集一直令我头大啊,今天百度了下下,找到一篇文章,看了以后我瞬间就明白了如何求解Follow集~~哈哈,如果你也不知道如何求解Follow集,请看看下面 ...
- C++实现first集follow集
1."@"代替字符"ε" 2.同一非终结符如有多条产生式必须写成一行,中间用"|"分隔,不允许有空格 代码存在很多问题,大量"非正 ...
- 编译原理的FIRST、FOLLOW、FIRSTVT、LASTVT的求法总结
首先呢First和Follow是一对,而Firstvt和Lastvt是一对. First和Follow是为了画预测分析表的(在LL(1)分析法处). 而Firstvt和Lastvt是为了画算符优先关系 ...
最新文章
- FRVT赛程全纪录:格灵深瞳全球排名前五
- Arduino可穿戴开发入门教程LilyPad介绍
- 全国计算机考试vb考试知识点汇总,全国计算机二级考试VB机试常见题型汇总
- [转] PHP在不同页面之间传值的三种常见方式
- shell 目录下文件名放入循环_批量删除同一目录下的文件名前缀
- 量子纠缠背后的故事(三):维格纳的朋友 精选
- Kernel(核函数)
- hadoop deployment
- 解决方案PPT设计:如何作出标准通用型的目录页?
- 青少年python编程入门范例_青少年Python编程入门—图解Python
- html模板怎样做seo,SEO如何做分享模板做外链
- Bitbucket 添加ssh密钥
- hdu 4826 Labyrinth
- python怎么样自动生成证件照
- 安卓开发--Eclipse搭建开发环境
- mysql 查询不等于问题
- 创新型中小企业认定条件
- 微信证据以及数据恢复删除记录恢复交易恢复
- 做个表白页面需要掌握哪些英语单词?
- 小罗学习笔记之安卓的存储路径(持续完善)
热门文章
- 手机丢了,支付宝里的钱会丢么?
- Ural 1558 - Periodical Numbers 写吐的水题...
- windos怎么查看oracle进程,在windows下查看oracle的后台进程
- 什么是应变能力?如何提高应变能力?
- 必须知道的linux命令,29 个你必须知道的 Linux 命令
- NVIDIA 7th SkyHackathon(七)Tao 目标检测模型可视化推理与导出
- Android解析WindowManager(二)Window的属性
- Ubuntu18.04 安装 Pycharm
- 使用耳聆网音频工具箱怎么转换音频格式?
- 学习Origin软件使用