自底向上分析部分总结

LR 分析法是一种规范归约分析法,大多数上下文无关 文法都可以用相应 LR 分析器识别
LR 分析器的 关键部分 LR 分析表
从给定的上下文无关文法构造 LR 分析表的方法是
LR(0)或 SLR(1) 分析表,构造 LR(0) 项目集规范 族,而对 LR(1)或 LALR(1) 分析表,则构造 LR(1) 目集族
构造识别文法规范句型活前缀的 DFA
DFA 转换成相应的 LR 分析表
四种分析表的构造基本相同,仅对 含归约项目 的项目集构造 分析表元素有所不同。
注意文法要拓广。
四种 LR 文法的定义
LR(0) 文法是所有 LR(0) 项目集中 没有“移进-归 约”或“归约-归约”冲突(或  LR(0) 分析表中不
含多重定义)
SLR(0) 文法是 LR(0) 项目集中含有冲突的项目都能 SLR 规则解决(或 SLR(0) 分析表中不含多重定 义)
LR(1) 文法是所有 LR(1) 项目集中 没有“移进-归 约”或“归约-归约”冲突(或 LR(1) 分析表中不 含多重定义)
LALR(1) 项目集中无“归约-归约”冲突(或 LALR(1) 分析表中不含多重定义)。注意 搜索符叧
对归约项目起作用
四种 LR 文法的判别方法
首先构造 LR(0) 项目集规范族,若无冲突,则为 LR(0) 文法,同时也为 SLR(1), LR(1) LALR(1)
若不是 LR(0) 文法,则看是否能用 SLR(1) 方法解决 冲突,若能则为 SLR(1), LR(1) LALR(1) 文法
若不是 SLR(1) 文法,则构造 LR(1) 项目集族,若无 冲突则为 LR(1) 文法,合并同心集后若仍无冲突, 则也为 LALR(1) 文法。
四种文法之间的关系  
LR(0) SLR(1) ⊂ LALR(1) = LR(1)

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

用编程写诗

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

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

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

打赏作者

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

抵扣说明:

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

余额充值