编译原理学习笔记(十八)~LL(1)文法
定义
文法G被称为是LL(1)文法,当且仅当为它构造的预测分析表中不含多重定义的条目。
- 第一个L代表从左到右扫描输入序列,
- 第二个L表示产生最左推导,
- 1表示在确定每一步 动作时向前看一个终结符。
具体怎么理解呢?
举个简单的例子吧,通过自上而下语法分析,我们可以利用FIRST()和FOLLOW()集合构造出预测分析表,有时一个[E,a]对于的框中只有一个式子,这时候就称为LL(1)文法。因为有时会产生一个框中有两个式子对应。比如下面的例子:
而一般类似下面的预测分析表,我们就可以称对应的文法为LL(1)文法
注:其实就是一个框中只可以写一个式子【这样理解应该就可以啦】
判断是否为LL(1)文法的方法
解释:
这里还是举个例子说明吧,以下面的为例:
(上图为举例式子)对于条件一,假设他们的交集不为空,也就是两者的FIRST集合中存在相同的非终结符。这里我们修改一个FIRST集合:FIRST(E)={(,mod,num} FIRST(T’) = { mod} 【假设交集不为空,看看预测表有什么变化】,那么运用构造预测表的方法:我们可以发现【E’,mod】对应的框中出现了不止一个式子(可以归纳为+TE’和-TE’),所以不是LL(1)文法。
注:上述的假设其实不是完成证明条件(1),只是帮助理解。
对于条件二就比较好理解了,和条件(1)差不多的。
编译原理学习笔记(十八)~LL(1)文法相关推荐
- Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件
Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件 插件是由PolyWorks加载的动态链接库(DLL文件),然后查询Polyworks模块,以确定它们具有哪些功能,提供给 ...
- 编译原理学习笔记2——高级程序设计语言概述
编译原理学习笔记2--高级程序设计语言概述 2.1常用的高级程序设计语言 2.2程序设计语言的定义 2.2.1语法 2.2.1语法 2.2.3程序语言的基本功能和层次机构 2.2.4程序语言成分的逻辑 ...
- python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置...
python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置 Download JetBrains Python IDE :: PyCharm http://ww ...
- windows内核开发学习笔记十八:IRP 处理的标准模式
windows内核开发学习笔记十八:IRP 处理的标准模式 在 Windows 内核中的请求基本上是通过 I/O Request Packet 完成的. I/O manager ---> Dis ...
- [编译原理学习笔记2-2] 程序语言的语法描述
[编译原理学习笔记2-2] 程序语言的语法描述 文章目录 [编译原理学习笔记2-2] 程序语言的语法描述 [2.3.1] 上下文无关文法 [2.3.2] 语法分析树与二义性 [2.3.3] 形式语言鸟 ...
- 编译原理学习笔记20——符号表
编译原理学习笔记20--符号表 20.1 符号表的组织与操作 20.2 符号表的内容 20.3 利用符号表分析名字的作用域 20.1 符号表的组织与操作 符号表 符号表的作用与组织 符号表的整理和查找 ...
- 编译原理学习笔记 5.1 翻译文法和语法制导翻译
前言 参考课上PPT内容. 该学习笔记目前仅打算个人使用. 后续会进一步整理,包括添加笔记内容,标明参考资料. 更新中... 跳过目录 目录 导言 一.翻译文法和语法制导翻译 输入文法 翻译文法 活动 ...
- 编译原理学习笔记 3.3 正则文法的状态图
前言 参考东南大学廖力老师的编译原理教程和课上PPT内容. 该学习笔记目前仅打算个人使用. 后续会进一步整理,包括添加笔记内容,标明参考资料. 更新中... 跳过目录 目录 状态图的画法(根据文法画出 ...
- 编译原理学习笔记一(待续)
这几天忙着学英语,同时在学习编译原理,对这门课很感兴趣,已经制作了词法分析器,同时还在补充这个分析器的功能,也准备着手开始写语法分析器,看到最后能不能连在一起,我想如果能够将整套编译器的流程跑下来真的 ...
- 学习笔记(十八):MoRe-Fi用深度学习网络从非线性信号中恢复呼吸波形
<MoRe-Fi: Motion-robust and Fine-grained Respiration Monitoring via Deep-Learning UWB Radar>学习 ...
最新文章
- Silverlight中使用CompositionInitializer宿主MEF
- 接口中定义变量必须为public static final的原因
- Py之itchat:python库之itchat的简介、安装、使用方法之详细攻略
- 一个人动情之后的表现......
- nodejs开发工程师前景_Google NodeJS运行时团队的工程师Matt Loring访谈
- MySql 性能优化
- mac mysql本地连接数_Mac OS X下MySQL 5.0的默认连接数
- Oracle使用sqlplus登录用户尽量使用nolog登录
- php相册上传和删除吗,php如何删除上传图片
- 在线协作平台「蓝湖」完成5亿元C轮融资,多元化产品布局提升产品研发效率...
- jenkins简介及docker部署
- ppt取色html,ppt如何使用取色器? ppt取色器的使用方法
- python中撤销的快捷键_python常用快捷键
- SpringSecurity授权
- D5渲染器电脑硬件配置Vol.1——操作系统丨显卡
- 一筐鸡蛋编程解题Java_一筐鸡蛋总共369个标准答案怎么算的?求法解答公式解题步骤...
- ASEMI整流二极管MR754参数,MR754图片,MR754应用
- iOS 最新版9.3 disk image
- __call__ 的用法
- macbookpro安装ch340驱动