版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章:自底向上语法分析
SLR(1)方法
LR(1)语法分析LR(0)方法对文法的要求严格。LR(0)方法容易出现冲突状态。1.LR(0)分析方法的不足1、如果某个状态有如下项目集:{A→
,D→
d
},则存在移入-归约冲突。可以如下解决:若当前输入符在A的Follow集中,则应用A→
归约;若当前输入符为d则应移入。而对当前输入符为d,d又在A的Follow集中,则无法解决。1.LR(0)分析方法的不足如果某个状态有如下项目集:{A→
,B→
},则存在着归约-归约冲突。可以如下解决:若用A→
归约,则当前输入符应在A的Follow集中若用B→
归约,则当前输入符应在B
的Follow集当前输入符应在A的Follow集中又在B
的Follow集中,则无法解决。1LR(0)分析方法的不足LRSM0中存在着状态:
{A1→
1
,
…,
An→
n
,
B1→
1
a1r1,
…,
Bm→
m
amrm}则集合:
Follow(A1)、…、Follow(An)、{a1,…,am}
两两相交为空。注:a1,…,am中可以有相同者。2.1SLR(1)分析条件2.2SLR(1)分析表的构造假设ISk为LR(0)项目集,则action矩阵:若A
a
ISk,且GO(ISk,a)=ISi,a
VT,则action(ISk,a)=Si,表示移入动作。若A
ISk,则对任意a
VT,a
Follow(A),令action(ISk,a)=Rj,其中产生式A
的编号为j,表示用编号为j的产生式进行归约。若Z
ISk,且Z为拓广产生式的左部非终极符(文法的开始符),则action(ISk,#)=Accept。其它情形,则Error(n),表示出错标志,也可不填。goto矩阵:若GO(ISk,A)=ISi,A
VN,则goto(ISk,A)=i。2.3SLR(1)语法分析表0M
TT
FT
F*TF
a1M
T
T3T
F
T
F
*TF2F
a
a*4T
F*
TT
FT
F*TF
aFaT5T
F*T
[1]M
T[2]T
F[3]T
F*T[4]F
a分析表2.3SLR(1)语法分析表[1]M
T[2]T
F[3]T
F*T[4]F
aFollow(M)={#}Follow(T)={#}Follow(F)={*,#}action表goto表a*#TF0S2131Ac2R4R43S4R24S2535R3示例自动机2.4SLR(1)文法限定条件限定条件SLR(1)语法分析表单值LR(0)和SLR(1)分析能力对比LR(0)只看分析栈的内容,不考虑当前输入符;SLR(1)考虑输入符,用Follow集来解决冲突,因此SLR(1)要比LR(0)分析能力强。2.5SLR(1)的分析过程a*a*a状态栈符号栈
输入串
分析动作转向状态0 # a*a*a# S2 02 #a *a*a# R4 303 #F *a*a# S4 034 #F* a*a# S20342 #F*a *a# R4 30343 #F*F *a# S4 03434 #F*F* a# S2 034342 #F*F*a # R4 3034343 #F*F*F # R2 5034345 #F*F*T # R3 50345 #F*T # R3 501 #T # AC 分析表2.6SLR(1)问题所在Z
B1aB2bB3cB
dSLR(1)归约时向前看一个符号,但是不区分语法符号的不同出现。上述文法中,B出现了三次,很显然B1的后继符只能是a,B2的后继符只能是b,B3的后继符只能是c,而Follow(B)={a,b,c},用SLR(1)就失去了精度。2.7几种LR方法的简单对比LR(0)方法不依赖输入流,直接判定归约,容易出现冲突。SLR(1)方法简单的把非终极符的Follow集做为可归约的依据,并不精确。一个非终极符在不同的位置上出现,它所允许的后继符是不同的。LR(1)针对不同产生式上的非终极符,分别定义其后继符集,减少了移入/归约、归约/归约冲突。3.1LR(1)基本思想构造各种LR分析器的任务就是构造其action表和goto表,其他部分基本相同。LR(1)的基本思想是对非终极符的每个不同出现求其后继符,而不是给每个非终极符求其统一的后继符,我们称其为展望符集。3.2LR(1)的基本概念LR(1)项目:[A
,a],即LR(0)项目及一个VT
{#}的展望符组成的二元组。
用IS表示LR(1)项目的集合,简称LR(1)项目集。其中,项Z
的展望符为#
IS(X):LR(1)项目集IS对于X的投影 IS(X)={[A
X
,a]|[A
X
,a]
IS}CLOSURE(IS)=IS∪{[A
,a]| [B
1
A
2,b]
CLOSURE(IS),
A
是产生式,a
First(
2b)}GO:若IS是一个LR(1)项目集,X是一个文法符号,则GO(IS,X)=CLOSURE(IS(X))。3.2LR(1)的基本概念Step1.构造初始状态IS0:IS0=CLOSURE({[Z→
S,#]}),并给IS0标上NO。Step2.从已构造的LRSM1部分图选择被标为NO的任一状态IS,删除NO,
对每个符号X
VT
VN,做下面动作:
1)令ISj=CLOSURE(IS(X))。2)若ISj非空:
①如果在LRSM1部分图中已有ISj项目集,则在IS和ISj之间画有向X边:IS
ISj
。
②如果在LRSM部分图中没有ISj项目集, 则将ISj作为LRSM的一个新的状态节点,并给ISj标上NO,同在IS和ISj之间画有向X边:IS
ISj
。重复Step2,直至没有被标记为NO的状态结点为止。xx3.3可归前缀图的构造构造下面文法的LR(1)自动机有文法:Z
BBB
aB B
bb2Z
BB
#B0Z
BB#B
aBa/bB
ba/bBb3B
b
#1Z
B
B#B
aB#B
b#4B
b
a/ba5B
a
B#B
aB#B
b#bB8B
aB
#a6B
a
Ba/bB
aBa/bB
ba/baabB7B
aB
a/b分析表假设ISk为LR(1)项目集则:若[Z
,#]
ISk,且Z为拓广产生式的左部非终极符,则action(ISk,#)=Accept。若[A
,a]
ISk,且产生式A
的编号为j,则action(ISk,a)=Rj,表示用编号为j的产生式进行归约。3.4LR(1)分析表的构造若[A
a
,b]
ISk,且GO(ISk,a)=ISi,a
VT,则action(ISk,a)=Si,表示把状态ISi和展望符a入栈。若GO(ISk,A)=ISi,A
VN,则goto(ISk,A)=i。其它情形,则Error(n),表示出错标志,也可不填。3.4LR(1)分析表的构造对于一个文法,若按照上述算法构造的分析表中没有冲突动作,则称该文法为LR(1)文法。3.5LR(1)文法的定义LR(1)分析表action表goto表ab#B0S6S411S5S322AC3R34R3R35S5S386S6S477R2R28R2有文法:[1]Z
BB[2]B
aB [3]B
b自动机状态栈符号栈
输入串ActionGoTo0#abaab#S6
0,6#abaab#S40,6,4#ab
aab#R3
70,6,7#aB
aab# R2 10,1 #Baab#S50,1,5#Baab#S50,1,5,5#Baab#S30,1,5,5,3#Baab#R380,1,5,5,8#BaaB#R280,1,5,8#BaB#R2 20,1,2#BB #AC 习题设文法G[S]为:SASSAaAAb
证明G[S]是LR(1)文法;构造它的LR(1)分析表;给出符号串abab#的分析过程02534AaG[Z]:Z
S[0]S
AS[1]S
[2]A
aA[3]
A
b[4]
ZS[0]#SAS[1]S
[2]AaA[3]Ab[4]##ab#ab#1ZS#SSAS[1]#SAS[1]S
[2]AaA[3]Ab[4]#ab#ab##AaA[3]AaA[3]Ab[4]Ab[4]bab#ab#ab#ab#SAS[1]#aSAa6ab#AaA[3]Abbab#0S3S4R21Acc2S3S4R23S3S44R4R4R45R16R3R3R3AS021122536456
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年河北石家庄辛集市农业投资有限公司笔试历年参考题库附带答案详解
- 2025年云南保山市事业单位公开招聘工作人员岗位调剂笔试历年典型考题及考点剖析附带答案详解
- 2025安徽阜阳经济开发区管委会直属国有公司招聘工作人员20人笔试历年参考题库附带答案详解
- 2026芬兰信息技术行业市场深度研究及行业发展趋势报告
- 八年级英语上册Unit5“叙事表达与文化交流”跨学科拓展教学设计
- 2026绿色印刷油墨认证体系与国际贸易壁垒研究
- 北师大版初中物理九年级跨学科实践专题教案:从光伏农场到可持续能源系统设计
- 拆墙废料清理方案范本
- 初中八年级历史(部编版)·“自强”与“求富”:洋务运动与中国近代化的早期探索教案
- 《时间的奥秘:认识钟表》教学设计-基于核心素养的小学数学一年级综合与实践主题活动
- 民营控股采购制度
- LED显示屏施工方案
- 绵阳市事业单位笔试真题2025年(附答案)
- 2025 六年级地理上册东南亚地区的海上交通要道课件
- 《生产安全事故应急演练基本规范》培训课件
- 精准医学课件
- 高校辅导员招聘笔试题目与答案解析含专业能力测试
- 非奈利酮多学科专家共识意见2026
- 中国对外贸易中心集团有限公司招聘考试真题2024
- 2025年广州辅警招聘考试真题附答案详解
- DGTJ08-2285-2019 城市道路防护设施技术标准
评论
0/150
提交评论