LR文法整理【LR文法的概念、LR(0)、SLR、LR(1)、LALR】(下)

5 篇文章 5 订阅
订阅专栏

LR(1)分析法

在Follow集合中的符号,只是进行归约的必要条件,而非充分条件。
在这里插入图片描述
出错原因:从下图的分析树中可以看到,R在不同的位置进行归约,后继符号是不一样的,简单的说,在特定位置中,A的后继符集合只是FOLLOW(A)的子集,这也就应证了上面说的,仅仅满足存在于FOLLOW集中,这是一个必要不充分条件,因此不能笼统的通过Follow集合进行判断,需要更加细化判断条件。
在这里插入图片描述

概念

学习了LR(0)和SLR之后,LR(1)项目的定义理解相对容易了很多。学习LR(1)主要需要知道展望符的概念和作用。

对于移入项目和待约项目,展望符a没有任何作用。
在这里插入图片描述

笔记回顾

这里补充两点

1、对于一个项目,并不是 · 在中间就是待约项目,比如 b · bBB这个是移进项目;

2、待约项目是没有等价项目的。

在这里插入图片描述

LR(1)等价项目

大体上和LR(0)是一样的,主要是多了对于展望符的推导。
如果β = ε ,则b = a;
如果β ≠ ε ,则b = FIRST(β),注意是FIRST(β)而不是FIRST(B)
在这里插入图片描述

LR(1)自动机转换图的构造

还是通过例子来进行解析,下图是LR(1)自动机的转换图。
在这里插入图片描述
在这里插入图片描述
I0进行分析:

项目1是通过用来进行增广的产生式0)得到的,其结束符号只能是$,因此1的展望符为$,这个项目为待约项目。因此根据文法中S的两个产生式1)和2),写出两个等价项目2和3,由于项目1中S后面是空串,因此2和3直接继承1的展望符$。

项目2也是一个待约项目,因此根据L的产生式3)和4)可以得到其等价项目4和5。由于L后面的符号是 = 号,因此4和5的展望符为 = 号。

项目3也是一个待约项目,根据R的产生式5)可以得到它的等价项目6,由于R后面是一个空串,因此项目6直接继承项目3的展望符$。

项目4和项目5都是移进项目。

项目6是待约项目,同理可以得到其等价项目7和8,同理7和8也继承6的展望符$。

项目7和8都是移进项目。

至此,I0的项目集闭包成功找到。

在这里插入图片描述

LR(1)自动机分析表的构造

根据转换图,可以构造出LR(1)自动机的分析表。

对于移入项目和待约项目的处理方法与LR(0)是一样的,对于归约项目,则有特定的后继符号要求才能进行归约。
在这里插入图片描述

归约条件比较

就拿I2来进行说明

LR(0)分析表:对于任何一个输入符号,都可以执行归约动作。

SLR分析表:对于Follow®集中的任何一个符号,都可以执行归约动作。

LR(1)分析表:只有当下一个输入符号为$的时候,才可以执行归约动作。
在这里插入图片描述

错误预见解析

下面由红色虚线框住的状态,如果根据SLR文法分析,当输入符号为 = 号的时候是可以进行归约的,但是从我们初始的文法可以看到,输入语句中最多只有一个 = 号,而I10I12I13状态都要经过I2I6这两步得到,很明显在进行 = 号的归约之前,就已经存在一个 = 号,因此这里如果遇到 = 号进行归约肯定是错误的。
在这里插入图片描述

SLR和LR(1)自动机转换图比较

通过对比,可以很明显的看出来,LR(1)的状态跟多,这是因为LR(1)分析法细化了输入信息,将状态进行了分裂。
在这里插入图片描述
概念补充

如果除展望符外,两个LR(1)项目集是相同的,则称这两个LR(1)项目集是同心

如果LR(1)分析表中没有语法分析动作冲突,那么给定的文法就称为LR(1)文法。

LALR分析法

LR(1)状态太多了,为了使LR(1)技术实用化,需要尽可能减少其状态数,而同心项目集合就是切入点。

不冲突,指的是都是将L归约为R,而不是归约为不同的非终结符。

观察下图,根据上面分析, 8 和10可以进行状态合并。4和11、5和12、7和13也是可以合并的同心项目集。

没有动作冲突的状态进行合并,可以大大减少自动机状态数,这样空间可以大大的节省。
在这里插入图片描述
在这里插入图片描述

合并同心项目集

在这里插入图片描述

LALR自动机

在这里插入图片描述
同心,所以合并的其实是对应项的展望符集合,展望符只在归约的时候起作用,在移入的时候是不起作用的,因此只要在合并前,各个同心项目集本身不存在移入/归约冲突,那么合并后肯定也是不存在移入/归约冲突的。
在这里插入图片描述

LALR(1)的特点

在这里插入图片描述
在这里插入图片描述

补充:直接从LR(0)转为LALR

比较值得注意的一点是,在同一个状态中,等价项目的产生不是通过继承得到的展望符,需要给上一级项目反馈。也就是说,如果产生的新项目的展望符是自生的,需要把这个新的展望符也添加到上一级项目的展望符中。比如下面状态②中,项目2对项目1的反馈作用。
在这里插入图片描述

第四章 语法分析(下)——LR文法
将晨的博客
11-13 1万+
LR(k)文法中,L指对输入进行从左到右的扫描,R表示反向构造一个最右推导序列。k表示在做出语法分析决定时向前看k个输入符号。 常用的LR(k)文法包括: - SLR:简单LR - LR(1):规范LR - LALR:向前看LR(Look ahead)
LRSLR(FOLLOW集与搜索符)的区别
TMS_LI的专栏
02-28 6533
LRSLR(FOLLOW集与搜索符)的区别 语法分析中,SLR使用的是FOLLOW集,LR使用的是搜索符,这是它们功能强弱不一的根本原因。 FOLLOW集的计算方法: 1.      对于方法的开始符S,置#于FOLLOW(S)中; 2.      若A->αBβ是一个产生式,则把FIRST(β)/{ ε}加至FOLLOW(B)中; 3.      若A->αB是一个产生式,则
LR文法整理LR文法概念LR(0)、SLRLR(1)、LALR】(上)
weixin_47365232的博客
06-17 8138
LR文法整理LR文法概念LR(0)、SLRLR(1)、LALR】(上)
LL1文法LR(0)文法SLR文法LR(1)文法LALR文法
热门推荐
klz
01-11 1万+
文章目录自顶向下分析自底向上分析文法转换LL(1)文法S 文法ε产生式的使用非终结符的后继符号集产生式的可选集Q文法串首终结符集LL(1)文法SELECT集、FOLLOW集、FIRST集计算 自顶向下分析 自顶向下分析指的是最左推导,最右归约是最左推导的逆过程,在最左推导中,总是选择每个句型的最左非终结符进行替换 自底向上分析 自底向上分析指的是最右推导、最左归约是最右推导的逆过程,在最右推到中,总是选择每个句型的最右非终结符进行替换 文法转换 回溯问题 直接左递归和间接左递归问题 回溯是指
LR系列文法
m0_51312071的博客
12-03 124
LR系列文法
LR0,SLR1,LR1,LALR1的判断以及分析表的构造
05-14
该程序能够根据给定的文法判断它是否为LR0,SLR1,LR1,LALR1文法; 打印项目集,分析表,Go函数; 若文法属于LR1,将进行LALR1文法的判断,若属于LALR1文法,将继续打印LALR1文法的项目集,分析表和Go函数。
slr(1).rar_SLR(1)构造器_lr(0) slr_slr(1)_slr1文法 项目_slr规范集族
09-20
SLR(1)分析法是编译原理中的一个重要概念,它是LR(0)分析法的扩展,用于处理更复杂的语法结构。在理解SLR(1)之前,我们首先要了解LR(0)分析器的工作原理。 LR(0)分析器是一种自底向上的解析方法,它基于文法的产生...
LR.rar_LR分析法_LR文法_编译原理LR
09-14
如果存在,可能需要采用更高级的分析技术如SLR(1)、LR(1)或LALR(1)来解决冲突。 5. **实现分析器**:根据生成的分析表编写实际的分析器代码,通常是用C或C++等编程语言实现。 在"LR.rar"的压缩包中,很可能是包含...
编译原理LR(1)文法.rar
01-05
LR(1)相比于LALR(1)或SLR(1),其优势在于能够处理更多的文法,因为它们增加了前瞻符号以解决某些冲突。 Python在编译原理领域中被广泛用于实现各种解析器和词法分析器,因为Python的简洁性和强大的数据结构支持这种...
编译原理 LR(0),SLR(1),LR(1), LALR(1) 词法分析
最新发布
03-04
总的来说,LR(0),SLR(1),LR(1) 和 LALR(1) 都是编译器设计中用于词法分析的重要工具,它们各有优缺点,适用于不同的文法结构。理解并熟练掌握这些方法,对构建高效且健壮的编译器至关重要。在 cc 文件中,可能包含...
编译原理【词法分析】—LR(0)、SLR(1)、LR(1)、LALR(1)文法之间的关系
我们都是被分成两半的人,一边热爱生活,一边憎恨生活。面对生活,我们总是在矛盾的两端摇摆,在反复的矛盾和犹豫中,一边踉跄前行,一边重振旗鼓。我渴望改变,渴望变得更好,渴望找到出口……就像一个溺水人的挣扎,就像一个救生圈。我是一个矛盾集合体,想要变得快乐,但是
10-22 4497
SLR(1)、LR(1)、LALR(1)文法之间的关系,什么是LL(1)、LR(0)、LR(1)文法,什么是句柄、什么是自上而下、自下而上分析,何时需要消除左递归,如何消除左递归,如何判断二义文法及消除文法二义性,什么是上下文无关文法、最左推导和最右推导
LR(0)分析和SLR
weixin_43749051的博客
06-04 5394
①栈顶出现句柄时规约,否则移入。 ②移入项目、代约项目、归约项目 1.引入开始符,得到增广文法,并且给每个式子编号。(即如果文法开头不是一个非终结符到另一个非终结符的产生式则需要加入,如加入 S’->·S ) 2.然后需要构造 LR(0)自动机,首先将增广文法增加的产生式加入I0状态当中,并且加入了一个圆点,圆点后的符号是即将处理的符号,然后将待处理的符号在蕴涵式左边的字母写出来(例如I0的E、T、F)。然后按照圆点后要处理的字母都引出一个箭头指向下一个状态。当S’->S·的时候,是accep
编译原理之LR(1)文法
Mr1998520的博客
11-20 1万+
LR(0)分析方法是一种自底向上分析方法,自底向上分析方法是一种移进归约过程,当分析的栈顶符号串形成句柄或可归约串时就采取归约动作。若是限定采用规范规约,那么自底向上分析法的关键问题是在分析过程中如何确定句柄。LR 分析法正是给出一种能根据当前分析栈中的符号串(通常以状态表示)和向右顺序查看输人串的k(k≥0)个符号就可唯一地 确定分析器的动作是移进还是归约和用哪个产生式归约,因而也就能唯一地确定...
语法分析笔记(四)——LR(0) SLR LR(1) LALR
qq_43707223的博客
05-18 2792
目录LR(0)LR(0)项目LR(0)的分析基础——增广文法文法中的项目构造LR(0)自动机LR(0)分析表构造LR(0)分析过程中的冲突 LR(0) LR(0)项目 LR(0)的分析基础——增广文法 进行LR(0)分析的文法必须先转变成增广文法的形式 文法中的项目 构造LR(0)自动机 LR(0)分析表构造 这个形式化定义不常用(了解即可) LR(0)分析过程中的冲突 移进——规约冲突:对于某一个状态,接受某个终极符后既可执行移进动作,也可执行规约动作 规约——规约冲突:对于某一个
算符优先文法分析器_编译原理:LL, LR 文法浅析
weixin_39524636的博客
12-13 591
编译原理-文法编译原理文法这里有很多混淆的地方,在这里梳理一下,尤其是各种“文法”(LL(k), SLR(k), LALR(k), LR(k), unambiguous grammar, ambiguous grammar, context-free grammar)。首先说明,Context-free grammar与无二义性文法不是一个层级的概念。CFG的意思是:我们用产生式设计的一组文法,...
编译原理——理解LL/LR/SLR/LALR
Xixoqw的博客
04-21 8136
LL(1)文法 属于自上而下的分析方法。 也就是说,同一个非终结符的多种递推方式中,首字母一定不同。这样就可以只用根据一个首字母就可以判断出是哪一个递推式子。 文法名字由来 第一个L代表从左边开始扫描; 第二个L表示产生最左推导 数字1表示每一步推导式只需要向后看一个符号就可以 LL(1)文法的明显性质 没有公共左因子(如果有,那么无法只读一个字符就判断如何递归) 不是二义的(每个读入的字符都...
学习笔记:LR语法分析
瑞瑞ruirui的博客
12-19 4679
目录自下而上的语法分析LR分析法 自下而上的语法分析 自下而上的语法分析方法: 就是从给定的字符串出发,逐步向上规约,直至文法的开始符S,看能否找到一个最左规约序列。 具体方式: 采用一个存放文法符号的栈,把输入字符串的符号逐个压栈,随时观察栈顶的情况,当栈顶形成某个产生式的一个候选式时,就把这一部分出栈,将该产生式的左端符号压栈,即规约。如此不断地“移进—规约”分析,直到输入符号串移进完,且栈...
编译原理之LL(1) 、LR(0)、SLRLR(1)、LALR文法的对比
骑着乌云看雪
12-07 2316
原创 编译原理之LL(1) 、LR(0)、SLRLR(1)、LALR文法的对比 ...
LR分析法详解:LR(0), SLR(1), LR(1), LALR(1)与编译原理
"本文档详细介绍了LR分析法的原理,包括LR(0)、SLR(1)、LR(1)和LALR(1)四种分析法,并探讨了二义文法LR分析中的应用。LR分析法是一种自底向上的语法分析技术,适用于广泛的上下文无关文法,具有快速、准确的特点,...
写文章

热门文章

  • 编译原理—LL(1)文法 10687
  • LR文法整理【LR文法的概念、LR(0)、SLR、LR(1)、LALR】(上) 8137
  • 删除链表中倒数第N个节点 5814
  • LR文法整理【LR文法的概念、LR(0)、SLR、LR(1)、LALR】(下) 4146
  • 可重入锁的理解及公平锁和非公平锁的具体实现 2418

分类专栏

  • 论文阅读笔记 5篇
  • 算法题 10篇
  • MindSpore入门 3篇
  • 编译原理 5篇

最新评论

  • ShuffleNet系列论文阅读笔记(ShuffleNetV1和ShuffleNetV2)

    静繇: 你好up,想问一下有没有这个网络后期相关的研究文章,我查找了一下没有找到。

  • ByteTrack论文阅读笔记

    CSDN-Ada助手: 你好,CSDN 开始提供 #论文阅读# 的列表服务了。请看:https://blog.csdn.net/nav/advanced-technology/paper-reading?utm_source=csdn_ai_ada_blog_reply 。如果你有更多需求,请来这里 https://gitcode.net/csdn/csdn-tags/-/issues/34?utm_source=csdn_ai_ada_blog_reply 给我们提。

  • Vision Transformer论文阅读笔记

    Kwan的解忧杂货铺@新空间代码工作室: 博主的文章总是内容丰富,讲解得非常清晰,每次都是一次启发,你的博客如同一本知识宝典,每次阅读都充实了我的思维,期待博主下次更新。真的很感谢你的贡献。

  • EfficientNet-V2论文阅读笔记

    CSDN-Ada助手: 你好,CSDN 开始提供 #论文阅读# 的列表服务了。请看:https://blog.csdn.net/nav/advanced-technology/paper-reading?utm_source=csdn_ai_ada_blog_reply 。如果你有更多需求,请来这里 https://gitcode.net/csdn/csdn-tags/-/issues/34?utm_source=csdn_ai_ada_blog_reply 给我们提。

  • EfficientNet-V1论文阅读笔记

    CSDN-Ada助手: 你好,CSDN 开始提供 #论文阅读# 的列表服务了。请看:https://blog.csdn.net/nav/advanced-technology/paper-reading?utm_source=csdn_ai_ada_blog_reply 。如果你有更多需求,请来这里 https://gitcode.net/csdn/csdn-tags/-/issues/34?utm_source=csdn_ai_ada_blog_reply 给我们提。

大家在看

  • AVL 树的旋转操作 156
  • 磁翻板液位计介绍
  • 数据帧列中字符串行的列表之间的成对距离 71
  • 登高作业安全绳佩戴识别系统 Python
  • IEC104规约的秘密之十五----文件传输慢的原因 2

最新文章

  • 远程连接服务器安装和配置环境
  • U-net和U²-Net网络详解
  • ByteTrack论文阅读笔记
2024年10篇
2022年24篇
2021年4篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家佛山玻璃钢主题雕塑制作厂玻璃钢雕塑哪家口碑好丽水玻璃钢雕塑销售电话五月美陈最值得去的商场镂空玻璃钢雕塑加工温州玻璃钢雕塑优质商家玻璃钢螳螂雕塑惠州玻璃钢人像雕塑图片邵阳长沙玻璃钢雕塑厂家玻璃钢斑马雕塑视频广场玻璃钢卡通雕塑摆件四川玻璃钢雕塑生产商中山玻璃钢景观雕塑山西玻璃钢广场雕塑安徽景区玻璃钢雕塑郑州室内玻璃钢人物雕塑定做淮安玻璃钢仿铜雕塑厂家供应玻璃钢小品雕塑现货上蔡玻璃钢雕塑厂家黑龙江景区玻璃钢雕塑价位张家口玻璃钢商场美陈成都市玻璃钢雕塑厂家河北佛像玻璃钢雕塑哪家便宜抽象玻璃钢雕塑定制北京超市商场美陈价钱阜阳公园玻璃钢雕塑哪家便宜商场大门通道美陈南宁抽象玻璃钢雕塑定做价格南阳镇平玻璃钢园林雕塑郑州小品系列玻璃钢雕塑定做香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化