【转】

一:LR(0),SLR(1),规范LR(1),LALR(1)的关系


    首先LL(1)分析法是自上而下的分析法。LR(0),LR(1),SLR(1),LALR(1)是自下而上的分析法。
            自上而下:从开始符号出发,根据产生式规则推导给定的句子。用的是推导
            自下而上:从给定的句子规约到文法的开始符号。用的是归约

     1: SLR(1)与LR(0)的关系:

           SLR(1)与LR(0):简单的LR语法分析技术(即SLR(1)分析技术)的中心思想是根据文法构造出LR(0)自动机。

LR(0):见到First集就移进,见到终态就归约

SLR(1)见到First集就移进,见到终态先看Follow集,与Follow集对应的项目归约,其它报错。

  2: LR(1)与LR(0)的关系:

    规范LR(1)语法分析技术的中心思想是根据文法构造出LR(1)自动机 ,而规范LR(1)自动机构造方法和LR(0)自动机的构造方法相同,只是多增加了向前搜索符号。

3:规范LR(1)与LALR(1)的关系:

    LALR(1)是对LR(1)项集族I中具有同心项的项集进行合并得到I',然后根据I’进行分析的方法。


二:LL(1),SLR(1),规范LR(1),LALR(1)的判别


      1:LL(1)判断规则

判定规则: 龙书上有很明确的规则,龙书上这样说, 对形如 A->a|β 这样的文法,满 足

①FIRST(α)∩ FIRST (β ) =Φ
        ②若ε∈ FIRST( α), 要满足 FIRST(β) ∩FOLLOW(A)=Φ
        这两个条件的才是 LL(1) 文法。
        这里要注意一下条件②, α和 β 是可以互换的,意思就是只要其中有一个 FIRST 集包含ε,那么就要看另一个了。

2:SLR(1)判断规则

    方法一:画出文法的LR(0)自动机,如果没有移进--规约冲突,即shift--reduce 冲突,则该文法是SLR(1)文法

   3:LALR(1)和LR(1)的判断规则

    画出文法的LR(1)自动机,如果没有同心项且没有状态冲突,则该文法是LALR(1)文法;如果有同心项且合并同心项有状态冲突,则是LR(1)文法

原文地址链接:http://www.cnblogs.com/Alexkk/p/6033159.html

最后附上我们sysu编译原理作业的两个例子

一, 证明下列文法

S à Aa | bAc | dc | bda

A à d

LALR(1)文法但不是SLR(1)文法.

 

拓广文法

(0) SS  

(1) S Aa  

(2) S bAc  

(3) S dc

(4) S bda

(5) A d  

拓广文法的LR(1)项目集规范族及Go函数如下

 

一、 证明下列文法

S à Aa | bAc | Bc | bBa

A à d

B à d

LR(1)文法但不是LALR(1)文法.

 

拓广文法

(0) SS  

(1) S Aa  

(2) S bAc  

(3) S Bc   

(4) S bBa  

(5) A d  

(6) B

拓广文法的LR(1)项目集规范族及Go函数如下

LL LR SLR LALR 傻傻分不清的更多相关文章

  1. [转帖]十分钟快速理解DPI和PPI,不再傻傻分不清!

    十分钟快速理解DPI和PPI,不再傻傻分不清! https://baijiahao.baidu.com/s?id=1605834796518990333&wfr=spider&for= ...

  2. 学点经济学:M0、M1、M2、M3,傻傻分不清?(转载)

    来源:http://t.10jqka.com.cn/pid_97006727.shtml 学点经济学:M0.M1.M2.M3,傻傻分不清? 25,508人浏览 2018-08-03 11:06 常听人 ...

  3. ASCII、Unicode、UTF-8、UTF-8(without BOM)、UTF-16、UTF-32傻傻分不清

    ASCII.Unicode.UTF-8.UTF-8(without BOM).UTF-16.UTF-32傻傻分不清 目录 ASCII.Unicode.UTF-8.UTF-8(without BOM). ...

  4. 【jvm】08-垃圾回收器那么多傻傻分不清?

    [jvm]08-垃圾回收器那么多傻傻分不清? 欢迎关注b站账号/公众号[六边形战士夏宁],一个要把各项指标拉满的男人.该文章已在github目录收录. 屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点 ...

  5. MVP MVC MVVM 傻傻分不清

    最近MVC (Model-View-Controller) 和MVVM (Model-View-ViewModel) 在微软圈成为显学,ASP.NET MVC 和WPF 的Prism (MVVM Fr ...

  6. OCA,OCP,OCM傻傻分不清?

    可能大家知道OCA.OCP.OCM的关系是一个比一个难考,一个比一个含金量高,但是你知道具体的考试科目.考试方式.就业形势区别吗?不知道的话这篇通俗易懂的文章会让你一目了然. 区别一:含金量 ■OCA ...

  7. session cookie傻傻分不清

    做了这么多年测试,还是分不清什么是cookie,什么是session?很正常,很多初级开发工程师可能到现在都搞不清什么是session,cookie相对来说会简单很多. 下面这篇文章希望能够帮助大家分 ...

  8. 【华为敏捷/DevOps实践】7. 敏捷,DevOps,傻傻不分清楚【华为云技术分享】

    文:姚冬(华为云DevCloud首席技术布道师,资深DevOps与精益/敏捷专家,金融解决方案技术Leader,中国DevOpsDays社区核心组织者) 前言 敏捷是什么?DevOps是什么?两者有什 ...

  9. Shell中傻傻分不清楚的TOP3

    Shell中傻傻分不清楚的TOP3 发布文章 近来小姐姐又犯憨憨错误,问组内小伙伴export命令不会持久化环境变量吗?反正我是问出口了..然后小伙伴就甩给了我一个<The Linux Comm ...

随机推荐

  1. iOS block

    主要内容: block基本声明格式 block访问区域变量 block代替代理 block基本声明格式: ^(传入的参数){具体代码}; 注: Block实体开头是"^",接着是由 ...

  2. jquery的checkbox,radio,select等方法总结

    jquery的checkbox,radio,和select是jquery操作的一个难点和重点,很多前端新手对其了解不是很透彻.时间久了不用,我在写的时候有时也难免对某些操作支支吾吾,记不清楚,现在,对 ...

  3. myql 查询树形表结果:说说、说说的述评、评论的回复

    myql 查询树形表结果:说说.说说的评论.评论的回复 有三张表关联表: 用户的说说表(ixt_customer_note) 说说的评论表(ixt_customer_note_comment) 评论的 ...

  4. GridBagConstraints 参数解释

    GridBagConstraints 的具体参考为: http://download.oracle.com/technetwork/java/javase/6/docs/zh/api/java/awt ...

  5. 如何在eclipse中通过Juit进行单元测试

    1.什么是Junit Junit即单元测试,是JAVA语言的单元测试框架,是对程序的一个方法所进行的测试 一般都是由程序员自己通过Junit来进行测试,因此单元测试也叫程序员测试: 如果测试人员熟悉程 ...

  6. freemarker IllegalAccessError 错误

    java.lang.IllegalAccessError: tried to access method freemarker.ext.servlet.AllHttpScopesHashModel.& ...

  7. 基于ACE的c++线程封装

    1. 基本需求 1) 一个基类,其某个方法代表一个线程的生命运行周期.之后通过继承自这个基类来实现个性化线程类: 2) 具备类似QObject的定时器设置功能: 3) 提供在线程对象中同步和异步执行方 ...

  8. 用U盘安卓esxi虚拟机出现 error loading /s.v00 错误解决办法

    前段时间用 一个 白色的 东芝U盘 给戴尔 R720服务器安装 esxi 6.0时,在加载到/s.v00 找个文件时出现错误,大致为: error loading /s.v00 compressed ...

  9. Enterprise Achitect使用与类的关系的简单介绍

    本文作为Enterprise Achitect初步使用,另外也是类图基本介绍,是设计模式的基础.  类的关系有泛化(Generalization).实现(Realization).依赖(Depende ...

  10. 2016最后一贴,终于调通一个测试示例,并发现一个BUG???

    真的难点在于第一次调通.纠结五天,终于搞出界面. 也发现了一个书上代码,编辑用户时死活不通的情况,我将Links去了,改在data里,我X,,全OK了.. 原来的代码: onAdd: function ...