版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章:自底向上语法分析
LALR(1)方法例子设有文法G:Z
bMbM
aM
(LL
Ma)0Z
bMb#Mb2Z
bM
b#a1Z
b
Mb#M
abM
(Lbb4M
a
b3Z
bMb
#(5M
(
LbL
Ma)bM
aaM
(LaL6M
(L
bM7L
M
a)ba8L
Ma
)b10L
Ma)
b)a9M
a
a11M
(
LaL
Ma)aM
aaM
(La(M13L
M
a)aa14L
Ma
)aa15L
Ma)
a)(12M
(L
aL同心状态项目的心:假设[A
,b]是LR(1)项目,则称其中的LR(0)项目部分A
为该项目的心。状态的心:设S是LR(1)状态机的一个状态,则S的所有项目心之和称为状态心,并表示为Core(S)。同心状态:如果LR(1)状态机中的两个状态具有相同的心,则称它们为同心状态。LALR(1)的思想来源LR(1)的最主要问题是状态用的太多,以至于有些大语言难以在某些微机上实现。因此,必须给出功能较强且状态数不多的切实可行的方法。在LR(1)状态机出现很多同心状态,而LALR(1)状态机则将同心状态合并,从而大大减少状态数,这就是LALR(1)和LR(1)的主要差别。LALR(1)方法它具有SLR(1)的状态数少的优点和LR(1)的适用范围广的优点。
LALR(1)方法的功能介于SLR(1)和LR(1)之间。LALR(1)状态机的状态个数和LR(0)状态机的状态个数相同,而其展望符则既不采用SLR(1)的Follow集方法,也不采用LR(1)的完全精确法。LALR(1)可归前缀图的构造先构造LR(1)状态机,后构造LALR(1)状态机按LR(1)状态机的方式构造,但发现同心状态时不产生新状态,而是采用合并状态的方法。0Z
bMb#Mb2Z
bM
b#a1Z
b
Mb#M
abM
(Lbb4M
a
b3Z
bMb
#(5M
(
LbL
Ma)bM
aaM
(LaL6M
(L
bM7L
M
a)ba8L
Ma
)b10L
Ma)
b)a9M
a
a11M
(
LaL
Ma)aM
aaM
(La(M13L
M
a)aa14L
Ma
)aa15L
Ma)
a)(12M
(L
aL0Z
bMb#Mb2Z
bM
b#a1Z
b
Mb#M
abM
(Lbb4,9M
a
ab3Z
bMb
#(5,11M
(
LabL
Ma)abM
aaM
(Laa6,12M
(L
abM7,13L
M
a)aba8,14L
Ma
)ab10,15L
Ma)
ab)L(LALR(1)语法分析过程LALR(1)语法分析表的构建驱动程序语法分析过程因为文法是LR(1)文法,所以S1、S2都不存在移入/归约冲突和归约/归约冲突。所以:{u1∪v1}∩a、{u2∪v2}∩a=
u1∩v1、u2∩v2=
合并后:{u1∪v1∪u2∪v2}∩a=
没有移入/归约冲突但是不代表(u1∪u2)∩(v1∪v2)=
。可能产生归约/归约冲突
1A
u1B
v1B
1
a1t12A
u2B
v2B
1
a1t2合并A
u1u2B
v1v2B
1
a1t1t2合并同心状态带来的问题合并同心状态带来的问题有如下文法:Z
aAdZ
bAcZ
aBcZ
bBdA
eB
eeZ
aAd# Z
bAc#Z
aBc#Z
bBd#2A
e
dB
e
caZ
a
Ad# Z
a
Bc#A
edB
ecZ
b
Ac#Z
b
Bd#A
ecB
edbe3A
e
cB
e
dLR(1)可归前缀图中无冲突,但是将2、3状态合并以后,产生归约/归约冲突。OutputStack#an…ai…a1LR分析驱动器(驱动程序)gotoactionInputStXt……语法分析表LR方法总结LR方法总结从功能上看,各种语法分析方法的分析能力从小到大依次为: LR(0)<SLR(1)<LALR(1)<LR(1)从状态数方面看,各种语法分析方法的状态数有如下关系: LR(0)=SLR(1)=LALR(1)<LR(1)。习题判定该文法是否为SLR(1)文法,是否为LALR(1)文法:
S
AaB S
B A
aB A
b B
A
Z
SS
AaBS
BA
aBA
bB
A02AZ
SS
AaBS
BA
aBA
bB
AS
AaBB
A3
S
AaB....aFollow(B)={#,a}…
a…#………2…S3/R6…R6….….…所以该文法不是SLR(1)文法.0ZSSAaBSBAaBAbBA###a#a##1ZS#2SAaBBA##6SAaBBAAaBAb####7S
AaB
#3S
B
#4Aba#10AaB#a5AaBB
AAaBAb#a#a#a#a11B
A
#a8AaBB
AAaBAb####9B
A
#12Ab#13AaB#SAabBaBAbBAabaaABb状态4和状态
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年绵阳市第三人民医院招聘考试试卷真题
- 2025年德州天衢新区招聘教师考试试卷真题
- 2029年粮油调料配送合作协议三篇
- 幼儿园中班铁路安全
- 有理数的乘除运算(第2课时有理数的乘法运算律)课件2026-2027学年学年北师大版七年级数学上册
- 译林版英语六年级下册Unit8 课时作业1
- (2026年)新工人进场三级安全教育(木工班组)试卷及答案
- 中小学校财务管理制度
- 2026边境辅警面试题目及答案
- 疼痛神经调控与脑机接口应用 (课件)
- 一张纸水库防汛应急预案
- 健康教育学题库及答案
- 四川省成都市天府七中2024-2025学年八年级下学期第二次段考数学试卷(含答案)
- 新疆公务员面试题目及答案
- 重庆市2025-2026学年度第二学期八年级下历史期末模拟试卷及答案
- 学堂在线 运动与健康 章节测试答案
- 2024-2025学年北京市海淀区七年级下英语期末考试题(含答案和音频)
- GB/T 755-2025旋转电机定额与性能
- 2025年广州市人社局劳动合同模板
- 2024-2025学年广东省佛山市高一(下)期末数学试卷(含解析)
- 2024年浙江省杭州拱墅小升初分班考科学试卷(含答案)
评论
0/150
提交评论