证明LL(1)、SLR(1)、LALR(1)文法—编译原理第三章习题陈意云张昱

本文深入探讨了编译原理中的上下文无关文法及其分析方法,包括最左推导和最右推导的概念,以及如何判断和消除文法的二义性。重点讨论了LL(1)、SLR(1)和LALR(1)文法,解释了它们之间的关系,并通过具体例子分析了文法冲突的原因。同时,文章也提及了词法分析、DFA构造、属性栈代码等编译过程的关键步骤,展示了编译器设计中的核心概念。

系列文章戳这里👇

  1. 什么是上下文无关文法、最左推导和最右推导
  2. 如何判断二义文法及消除文法二义性
  3. 何时需要消除左递归
  4. 什么是句柄、什么是自上而下、自下而上分析
  5. 什么是LL(1)、LR(0)、LR(1)文法、LR分析表
  6. LR(0)、SLR(1)、LR(1)、LALR(1)文法之间的关系
  7. 编译原理第三章习题
  8. 词法分析、构建DFA、上下文无关文法、LL(1)分析、提取正规式
  9. 证明LL(1)、SLR(1)、LALR(1)文法
  10. 翻译方案、属性栈代码
  11. 【运行时环境】什么是活动记录、 活动记录与汇编代码的关系

( 4 ) (4) (4)习题 3.21 、 3.22 、 3.25 3.21、3.22、3.25 3.213.223.25

3.21 3.21 3.21:
( a ) (a) (a)证明下面文法是 L L ( 1 ) LL(1) LL(1)文法,但不是 S L R ( 1 ) SLR(1) SLR(1)文法。
S → A a A b ∣ B b B a A → ϵ B → ϵ S→AaAb|BbBa\\ A→\epsilon\\ B→\epsilon SAaAbBbBaAϵBϵ
根据 L L ( 1 ) LL(1) LL(1)文法定义, F i r s t ( A a A a ) = { a } , F i r s t ( B b B b ) = { b } First(AaAa)=\{a\},First(BbBb)=\{b\} First(AaAa)={ a},First(BbBb)={ b}
F i r s t ( A a A a ) ∩ F i r s t ( B b B b ) = ϕ First(AaAa)∩First(BbBb)=\phi First(AaAa)First(BbBb)=ϕ,所以该文法是 L L ( 1 ) LL(1) LL(1)文法。
根据 S L R ( 1 ) SLR(1) SLR(1)分析,存在如下状态
I : S → ⋅ A a A b S → ⋅ B b B a A → ϵ ⋅ B → ϵ ⋅ \begin{aligned} I:&\\ &S→·AaAb\\ &S→·

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

之墨_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值