- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
; 移进?归约分析;自底向上分析思想; 从所要分析的终结符串开始进行归约;
每一步归约是在当前串中找到与某个产生式
的右部相匹配的子串,然后将该子串用这一
产生式的左部非终结符进行替换;如果找不
到这样的子串,则回退到上一步归约前的状
态,选择不同的子串或不同的产生式重试;
重复上一步骤,直到归约至文法开始符号;
如果不存在任何一个这样的归约,则表明该
终结符串存在语法错误; 自底向上分析举例; 在每一步归约中,选择哪一个产生式以及匹配
哪一个位置上的子串都可能是非确定的
这些非确定性导致分析过程会有很高的复杂性; 改进的方法; 举例:短语; 直接短语; 举例:直接短语; 句柄; 举例:句柄; 举例:句柄不一定唯一; 举例: 最右推导与最左归约; 自底向上分析的实现技术; 与自顶向下技术相比; 借助一个下推栈(分析栈??和一个基于有限状态控制的
分析引擎
分析引擎根据当前状态、下推栈当前状态/内容、剩余输
入单词序列来确定如下动作之一,然后进入新状态:
Reduce: 依确定的方式对位于栈顶的短语进行归约
Shift: 从输入序列移进一个单词
Error: 发现语法错误,进行错误处理/恢复
Accept:分析成功; 移进?归约分析
的一个例子; 对应一个最右推导
将分析栈中的符号
串和余留输入串并
置,若逆向观察从
步骤(14)至步骤
(1)的每一个归约
步骤,则对应一个
最右推导,也称为
规范推导(canonical
derivation)
此为LR分析过程
句柄作为“可归约串”; 移进?归约分析
的另一个例子; 移进?归约(shift-reduce)冲突
到达一个不能确定下一步应该移进还是应该归约的状态
例如,有产生式
S ? if E then S | if E then S else S
考虑对于如下串进行移进?归约分析
if E then if E then S else S
当 if E then if E then S 出现在分析栈中时,是移进 else,
还是归约 if E then S ?; 归约?归约(reduce-reduce)冲突
到达这样的状态:有对多于一个短语进行归约的选择
例如,有产生式
A ? aA | aaA
考虑对于串 aaab 进行移进?归约分析
当分析到某一步时,aaA出现在分析栈中(b 位于剩
余输入区),是用产生式 A ? aA 归约 aA,还是用产
生式 A ? aaA 归约 aaA ?; 借助于分析表
多数移进?归约分析的实现都是基于表驱动方法
分析引擎根据当前状态、输入单词查询分析表,确定
Reduce,Shift,Error 和Accept 等动作
分析表应当可以体现出移进?归约冲突和归约?归约冲
突的解决方法
LR分析中的LR分析表以及算符优先分析中的算符优先
分析表可用于上述目的; 表驱动移进?归约分析模型;;; LR 分析模型
LR 分析是一种表驱动的移进?归约分析; 主要学习四种 LR 分析技术
LR(0)分析
适用于 LR(0)文法
SLR(1)分析
适用于 SLR(1)文法
LR(1)分析
适用于 LR(1)文法
LALR(1)分析
适用于 LALR(1)文法; LR 分析表
LR 分析表的构造是LR 分析的基础
LR(0), SLR(1), LR(1)和 LALR(1)
四种分析方法可共享同样的LR 分析表
本讲的LR 分析表专指此类LR 分析表; LR 分析表举例
文法: G[E] ; LR 分析表
使用两张表
ACTION 表 告诉分析引擎:在栈顶状态为k, 当前输
入符号是 a 时做什么
ACTION [k,a]=si, Shift:状态 i 移进栈顶
ACTION [k,a]=rj, Reduce:按第 j 条产生式归约
ACTION [k,a]=acc, Accept :分析完成
ACTION [k,a]=err,Error :发现错误 (常标为空白)
GOTO 表 GOTO[i,A]=j 告诉分析引擎:
在依产生式 A?? 归约之后,栈顶状态为i 时,要将新
状态
原创力文档


文档评论(0)