关于文法的总结报告
来源:互联网 发布:中国大数据产业生态 编辑:程序博客网 时间:2024/05/01 11:07
首先,交代自己三句话。
第一句话,这篇文字不要开头。
第二句话,直接跳过LL(1)从LR(0)开始。
第三句话,为了节省时间,只有精简记录。
OK,基于以上的内容,可以从LR(0)开始了。
众所周知,LR(0),SLR(1),LR(1),LALR(1)四个文法都属于自底向上文法的的各种子类,区别不大。简要的说明就是:
LR(0)没有先行判别,只依赖当前输入串的字符来判断进行移进规约动作。
SLR(1)存在了先行,但行为上也就是比LR(0)进步了这么一点,但是应用FOLLOW的从而求得先行的想法是相当明智的。
LR(1)直接将先行记录到状态当中。这里引用《编译器工程》里的阐述:对于每一种情况,项目出现在某个语法分析器状态相关的集合的事实表明,语法分析器已检查过的输入与文法中一个A后面跟一个a的出现是一致的。
#简注一笔:LR(1)将先行引入状态有以下几个方面可以注意:1,移进动作的判断与先行仍然没有太多关系(?);2,使判断归约更为方便——一旦某个包含了完整项目的状态遇到项目中相应的先行时,即可以立即判断归约。(小推测一下,这就相对于SLR(1)的判断归约手段更为透明,因为先行是可以从输入串当中看到的,这至少可以削去一些移进归约冲突,不过这个观点也有待验证)
LALR(1) 更向是结合了LR(0)和LR(1)的一个折衷方案,与LR(1)最大的区别就是在于一个状态当总中的一个项目可以容纳多个先行,(因为这些先行都发生同一性质的归约),这样一来将使得分析表变小,以便更快的分析。
- 关于文法的总结报告
- 我的年度总结报告
- 总结报告
- 总结报告!!!!
- 一个妓女的年度总结报告
- 一个妓女的年度总结报告
- 学生管理系统的总结报告
- 软件测试总结报告的编写
- lua2.1的文法
- EBNF文法的翻译
- 文法是干什么的?
- 文法的类型
- 文法的类型
- drracket的完整文法
- 乔姆斯基的文法分类
- 文法类型的判断
- 文法
- 文法
- ASP错误详解
- ASP使用另类后缀名
- ASP图象组件使用
- 在ASP中轻松实现记录集分页显示
- [维修日志]自从去卖笔记本以来,几乎都没碰过什么维修了...
- 关于文法的总结报告
- 一篇关于session的好文 [转]
- prototype.js 1.4版开发者手册
- google中的拖拽JS
- 海外读者评《应用Rails进行敏捷Web开发》
- HQL查询语言基础!
- 开个头了
- Ruby完全读书指南
- IT项目经理手册(一)---如何做业务调研?