《编译原理-龙书》练习第5章

这一章重要的是2个概念:
SDD:语法制导定义,由一个上下文无关文法和属性及规则组成
SDT:语法制导翻译,是在其产生式体内嵌入了程序片段的一个上下文无关文法

5.1 语法制导定义

图5.5中计算过程比较复杂,看完5.2节求值顺序就会理解更多

5.1.1比较简单,就是自底向上语法树中加上 .val就行

5.1.2 

5.2 SDD的求值顺序

5.2.1 保证下表中从左到右排就行

1->3->5  
2->4
4,5->6 6->7 7->8 8->9

5.2.2 依赖图比注释语法分析树增加了依赖关系

本题中的注释语法分析树完全类似图5-9

5.2.3 A->BCD

  S属性 L属性 求值顺序是否影响规则(中文书中翻译有问题)
A.s=B.i+C.s no(有继承属性) yes  
A.s=B.i+C.s
D.i=A.i+B.s
no yes  
A.s=B.s+D.s yes yes  
A.s=D.i
B.i=A.s+C.s
C.i=B.s
D.i=B.i+C.i
no no  

5.2.4

S->L1.L2      L1.side = left L2.side=right S.value=L1.value+L2.value

S->L              L1.side = left S.value=L.value

L->L1B         L1.side=L.side if(L.side==left) L.value=L1.value*2+B.value else L.value=L1.value+B/2^(length(L1))

L->B              if(L.side==left) L.value=B.value else L.value=B.value/2

B->0              B.value = 0

B->1              B.value = 1

5.2.5

S->LEFT.RIGHT | LEFT

LEFT->

  • 6
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值