- 11
- 0
- 约7.7千字
- 约 43页
- 2018-10-19 发布于山东
- 举报
主要内容
自底向上分析概述
LR(0)分析
SLR(1) 分析
LR(1)和LALR(1)分析
Yacc :一个LALR(1)分析程序的生成器
使用Yacc生成TINY分析程序
自底向上分析程序中的错误校正
确定化NFA图得DFA图
因该文法属非LR(0)文法,输入串n+n+n,无法分
析下去,如何解决?
解决方法:通过超前查看输入串的下一个记号。
具体做法:
(1)在一个移进之前先考虑输入记号以确保存在
着一个恰当的DFA。
(2 )使用非终结符的Follow集合来决定是否应
执行一个归约。
注意:先行的这个简单应用的能力强大得足以分
析几乎所有的一般的语言构造。
SLR(1)分析算法(SLR(1) parsing algorithm ,
简单LR(1)分析) 使用了LR(0)项目集合的DFA。
只是在构造分析表的时候才考虑超前查看输入串
的一个符号。
Follow(E’) ={$},在状态1时,输入+则移进,输入$时则
归约。在如下SLR (1)分析表中,移进由表项中的字母s
指出,归约由字母r 指出。
SLR(1)分析过程与
LR(0)分析过程类似
(即图的遍历),
通过查表进行相应
的处理。符号串
n+n+n的SLR(1)分
析过程如下:
• SLR(1)分析过程总结:
SLR(1)分析算法:令s 为当前状态(位于分析栈的顶部) 。
则动作可定义如下:
1. 若状态s 包含了格式A→.X的任意项目,其中X是一
个终结符,且X是输入串中的下一个记号,则动作将当前
的输入记号移进到栈中,且被压入到栈中的新状态是包含
了项目A→X .的状态。
2. 若状态s 包含了完整项目A→.,则输入串中的下一个
记号是在Follow(A)中,所以动作是用规则A→归约。用
规则S’→S 归约与接受等价(其中S是开始状态),这只
有当下一个输入记号是$时,这才会发生。在所有的其他
情况中,新状态都是如下计算的:从分析栈删除串和它
的所有对应状态。相对应地,DFA回到开始构造的状态。
通过构造,这个状态必须包括格式B→.A的一个项目。
将A压入到栈中,并将包含了项目B→A.的状态压入。
3. 若下一个输入记号都不是上面两种情况所提到的,则声
明一个错误。
• SLR(1)存储结构——SLR(1)分析表
与LR(0)分析表的对比,两者的差别如下:
(1)由于状态在SLR(1)分析程序中可以具有移
进和归约(取决于先行),使得动作和规则列成为
多余。
(2 )由于输入结束符号$也可成为一个合法的先
行,所以必须为这个符号在输入部分建立一个新
的列。
文法:
S’→S
S→( S ) S |
在状态0、2和4 中,
(1)规约项S→.,其Follow (S) = { $ , ) }
(2 )移进项S→.(S)S的下一个符号为(
• SLR(1)分析法的问题1
试用SLR(1)分析法进行if语句文法所对应输入串
的分析。
statement →if-stmt | other
if-stmt →if ( exp ) statement| if (exp)
statement else statement
exp →0 | 1
为了便于后续处理,先简化文法:
S →I | other
I →if S | if S else S
可得LR (0 )项DFA图:
该文法属非SLR(1)文法。在状态5中,对于归约项,
Follow (I) = {$, else};对于移近项,下一个符号为else 。
只做移进不做归约解决移进-归约冲突,进而消除二义性。
为了在SLR(1)分析表中描述方便,对文法规则进
行了编号:
(1) S →I (2) S →other
(3) I →if S (4) I →if S else S
已删除了分析冲突的SLR(1)分析表如下:
• 结论:在SLR(1)分析中消除二义性规则
SLR(1)分析中以及所有的移进-归约分析方法中的
分析冲突都可分为两类:移进-归约冲突和归约-
归约冲突。
冲突消除方法:
(1)在移进-归约冲突中,有一个自然的消除二
义性规则,它总是选取移进而不是归约,因此大
多
您可能关注的文档
最近下载
- 2026年开工第一课主题.ppt
- 普通纪念币防伪课件.pptx VIP
- ASTM A388A388M-2018钢锻件超声检验标准操作方法中文版.pdf VIP
- 艺考真题|2020年中传文史哲初试真题原卷放送(附答案).doc VIP
- 毛石混凝土挡土墙施工方案.docx
- 八年级英语上册全册课课练.doc VIP
- POEMS综合征课件完整版.ppt VIP
- NB-T11409-2023水电工程费用构成及概(估)算费用标准.docx VIP
- 2026年春季学期学校德育工作计划.docx VIP
- 深度解析(2026)《TBT 3474.2-2018机车车辆螺纹连接软管 第2部分:橡胶软管》.pptx VIP
原创力文档

文档评论(0)