第六章 中间代码生成精选版.pptVIP

  • 6
  • 0
  • 约6.31千字
  • 约 59页
  • 2018-09-07 发布于湖北
  • 举报
第六章 中间代码生成精选版.ppt

处理类型转换的SDT 函数Max求的是两个参数在拓宽层次结构中的最小公共祖先 Widen函数已经生成了必要的类型转换代码 * yyty 函数/运算符的重载 通过查看参数来解决函数重载问题 E?f(E1) { if f.typeset = {si?ti|1= i= k} and E1.type=sk then E.type = tk } * yyty 控制流的翻译 布尔表达式可以用于改变控制流/计算逻辑值。 文法 B ? B‖B | B B | !B | (B) | E rel E | true | false 语义 B1‖B2中B1为真时,不计算B2,整个表达式为真。因此,当B1为真时应该跳过B2的代码。 B1B2中B1为假时,不计算B2,整个表达式为假 短路代码 通过跳转指令实现控制流的处理 逻辑运算符本身不在代码中出现; * yyty 短路代码的例子 语句: if (x100 || x200 x!= y) x = 0; 代码 if x 100 goto L2 ifFalse x 200 goto L1 ifFalse x != y goto L1 L2: x=0 L1: 接下来的代码 注: 当x100为真时,直接执行x=0; 所以执行x200时,x100必然为假 同理:计算x!=

文档评论(0)

1亿VIP精品文档

相关文档