自下而上的语法分析——LR(0)和SLR分析

LR分析法是一种用于解析上下文无关文法的形式化方法,它从左到右扫描输入,同时利用栈来辅助分析。SLR分析是LR(0)分析的一种,允许有限的前瞻信息来决定是移进还是归约。分析表是LR分析器的核心,包括动作和状态转换两部分。当文法过于复杂导致分析表冲突时,SLR分析会引入展望符号来解决。通过构造DFA和分析表,可以判断输入串是否符合文法规则,从而进行语法分析。
摘要由CSDN通过智能技术生成

借助于一个栈,可以将这种方法简化为“移进—规约分析”:

从左向右逐个扫描待分析的单词符号串,并将串中单词一个一个地移入栈中,边移入边分析;每当栈顶符号串形成了所给文法的某个产生式右部时就进行一次归约,即用该产生式的左部非终结符去替换相应的右部符号串(即:出现在栈顶的这一串单词符号,称为可归约串)。重复这一过程,若能将所有的单词符号都归约到文法的开始符号,则该单词符号串是该文法的合法句子,否则不是。

关键问题

分析过程中的关键问题是如何确定栈顶已经形成了可规约串,即:

  • 如何定义可归约串?
  • 如何识别可归约串?

如果简单地将“可规约串”定义为:栈顶形成了某个产生式的右部,那么识别起来是比较容易的:只需要每移进一个符号之后,就拿栈中符号串的所有子串与所有产生式的右部逐一比对,这样做虽然效率很低,但实现不难。但实际上这里存在一个大问题。

为此,引入如下一组定义:

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

LR分析法

L表示从左至右扫描输入串,R表示构造一个最右推导的逆过程࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花无凋零之时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值