定义

文法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)文法相关推荐

  1. Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件

    Polyworks脚本开发学习笔记(十八)-用SDK开发Polyworks插件 插件是由PolyWorks加载的动态链接库(DLL文件),然后查询Polyworks模块,以确定它们具有哪些功能,提供给 ...

  2. 编译原理学习笔记2——高级程序设计语言概述

    编译原理学习笔记2--高级程序设计语言概述 2.1常用的高级程序设计语言 2.2程序设计语言的定义 2.2.1语法 2.2.1语法 2.2.3程序语言的基本功能和层次机构 2.2.4程序语言成分的逻辑 ...

  3. python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置...

    python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置 Download JetBrains Python IDE :: PyCharm http://ww ...

  4. windows内核开发学习笔记十八:IRP 处理的标准模式

    windows内核开发学习笔记十八:IRP 处理的标准模式 在 Windows 内核中的请求基本上是通过 I/O Request Packet 完成的. I/O manager ---> Dis ...

  5. [编译原理学习笔记2-2] 程序语言的语法描述

    [编译原理学习笔记2-2] 程序语言的语法描述 文章目录 [编译原理学习笔记2-2] 程序语言的语法描述 [2.3.1] 上下文无关文法 [2.3.2] 语法分析树与二义性 [2.3.3] 形式语言鸟 ...

  6. 编译原理学习笔记20——符号表

    编译原理学习笔记20--符号表 20.1 符号表的组织与操作 20.2 符号表的内容 20.3 利用符号表分析名字的作用域 20.1 符号表的组织与操作 符号表 符号表的作用与组织 符号表的整理和查找 ...

  7. 编译原理学习笔记 5.1 翻译文法和语法制导翻译

    前言 参考课上PPT内容. 该学习笔记目前仅打算个人使用. 后续会进一步整理,包括添加笔记内容,标明参考资料. 更新中... 跳过目录 目录 导言 一.翻译文法和语法制导翻译 输入文法 翻译文法 活动 ...

  8. 编译原理学习笔记 3.3 正则文法的状态图

    前言 参考东南大学廖力老师的编译原理教程和课上PPT内容. 该学习笔记目前仅打算个人使用. 后续会进一步整理,包括添加笔记内容,标明参考资料. 更新中... 跳过目录 目录 状态图的画法(根据文法画出 ...

  9. 编译原理学习笔记一(待续)

    这几天忙着学英语,同时在学习编译原理,对这门课很感兴趣,已经制作了词法分析器,同时还在补充这个分析器的功能,也准备着手开始写语法分析器,看到最后能不能连在一起,我想如果能够将整套编译器的流程跑下来真的 ...

  10. 学习笔记(十八):MoRe-Fi用深度学习网络从非线性信号中恢复呼吸波形

    <MoRe-Fi: Motion-robust and Fine-grained Respiration Monitoring via Deep-Learning UWB Radar>学习 ...

最新文章

  1. Silverlight中使用CompositionInitializer宿主MEF
  2. 接口中定义变量必须为public static final的原因
  3. Py之itchat:python库之itchat的简介、安装、使用方法之详细攻略
  4. 一个人动情之后的表现......
  5. nodejs开发工程师前景_Google NodeJS运行时团队的工程师Matt Loring访谈
  6. MySql 性能优化
  7. mac mysql本地连接数_Mac OS X下MySQL 5.0的默认连接数
  8. Oracle使用sqlplus登录用户尽量使用nolog登录
  9. php相册上传和删除吗,php如何删除上传图片
  10. 在线协作平台「蓝湖」完成5亿元C轮融资,多元化产品布局提升产品研发效率...
  11. jenkins简介及docker部署
  12. ppt取色html,ppt如何使用取色器? ppt取色器的使用方法
  13. python中撤销的快捷键_python常用快捷键
  14. SpringSecurity授权
  15. D5渲染器电脑硬件配置Vol.1——操作系统丨显卡
  16. 一筐鸡蛋编程解题Java_一筐鸡蛋总共369个标准答案怎么算的?求法解答公式解题步骤...
  17. ASEMI整流二极管MR754参数,MR754图片,MR754应用
  18. iOS 最新版9.3 disk image
  19. __call__ 的用法
  20. macbookpro安装ch340驱动

热门文章

  1. 基本数据类型和内置方法 08
  2. 如何最大效率压缩视频文件(ffmpeg)
  3. 阿西莫夫科幻巨著 “基地三部曲”推荐
  4. ORACLE AIX-10g-rac安装
  5. 如何区分网线是几类的_怎么区分买的网线是几类网线?
  6. 【专栏】RPC系列(实战)-负重前行的“动态代理”
  7. 计算机散热程序,电脑的散热方法_百度经验
  8. ScriptX.cab与Smsx.cab打印代码
  9. 《智能制造》总结报告
  10. 从SUV到MPV,岚图难跨高端