第八章 语法制导翻译 中间代码生成.pptVIP

  • 1
  • 0
  • 约2.6万字
  • 约 126页
  • 2022-05-07 发布于广东
  • 举报
思考问题-把建立语法树的翻译模式变换成适合预测分析的模式 E?E1+T {E.nptr:=mknode(‘+’,E1.nptr,T.nptr) E ? E1-T {E.nptr:=mknode(‘-’,E1.nptr,T.nptr) E ? T {E.nptr:=T.nptr) 第62页,共126页。 自下而上计算继承属性 讨论在自下而上的分析过程中实现L-属性文法的方法。这种方法可以实现任何基于LL(1)文法的L-属性文法,它还可以实现许多(不是所有)基于LR(1)文法的L-属性文法。这种方法是S-属性文法的自下而上翻译技术的一般化 第63页,共126页。 自下而上分析器对产生式A→XY的右部是通过把X和Y从分析栈中移出并用A代替它们。假设X有一个综合属性X.s,按照前面所介绍的方法我们把它与X一起放在分析栈中。 由于X.s的值在Y以下的子树中的任何归约之前已经放在栈中,这个值可以被Y继承。也就是说,如果继承属性Y.i是由复写规则Y.i: = X.s定义的,则可以在需要y.i值的地方使用X.s的值。在自下而上分析中计算属性值时复写规则起非常重要的作用。看下面例子。 第64页,共126页。 假设某翻译模式为: D→T {L.in: = T.type} L T→int {T.type: = integer} T→real {T.type: = real} L→ {L1.in

文档评论(0)

1亿VIP精品文档

相关文档