编译原理4.4L属性自下而上计算.pptxVIP

  • 17
  • 0
  • 约2.78千字
  • 约 15页
  • 2022-10-19 发布于北京
  • 举报
4.4 L属性的自下而上计算引入标记非终结符:从翻译方案中去掉嵌入在产生式中间的动作复写规则综合考虑标记非终结符和复写规则:模拟继承属性的计算改写文法:用综合属性代替继承属性4.4.1 删除嵌入在翻译方案中的动作——引入标记非终结符从翻译方案中去掉嵌入在产生式中间的动作:使所有嵌入的动作都出现在产生式的末尾转换方法:在基础文法中加入新的产生式,这种产生式的形式为M?? (M为新引入的一个标记非终结符),将嵌入在产生式中的每个语义动作用不同的标记非终结符M代替,并把这个动作放在产生式M?? 的末尾 E?TR R?+TMR1 | -TNR1 | ? T?num{ print(num.val) } M?? { print(+)} N?? { print(-)}例: E?TR R?+T{ print(+)}R1 | -T { print(-)}R1 | ? T?num{ print(num.val) }转换为4.4.2 分析栈中的继承属性——利用复写规则分析栈中的继承属性:利用复写规则使得在需要用到继承属性的地方用综合属性来代替例:A?XY X有综合属性s,Y有继承属性i,如果Y.i:=X.s,则可以在需要Y.i的值的地方使用X.s的值例如:翻译方案D?T {L.in:=T.type} LT ?int {T.type :=integer}T ?real {T.type :=

文档评论(0)

1亿VIP精品文档

相关文档