长安大学《编译原理》chapter6.pdfVIP

  • 2
  • 0
  • 约3.88万字
  • 约 75页
  • 2018-01-15 发布于浙江
  • 举报
软件工程专业本科课程 编 译 原 理 Compilers Principles 长安大学信息工程学院软件工程系 主讲:李 鹏 第六章 中间代码生成 本章内容  介绍几种常用的中间表示  用语法制导定义来说明程序设计语言的结构 怎样被翻译成中间形式 中间 中间 语法 静态 代码 代码 代码 分析器 检查器 生成器 生成器 前端 后端 2 6.1 语法树的变体 表达式的有向无环图 DAG可以简洁的表示表达式,并且可以为生成高 效代码提供信息。 a+a*(b-c)+(b-c)*d + + * * d a - b c 3 构造语法树或DAG的语法制导定义 产 生 式 语 义 规 则 E E + T E.node = new Node( „+‟, E .node, T.node) 1 1 E E - T E.node = new Node( „-‟, E .node, T.node) 1 1 E  T E.node = T.node T  T * F T.node = new Node( „*‟, T .node, F.node) 1 1 T  F T.node = F.node F  (E) F.node = E.node F  id F.node = new Leaf (id, id.entry) F  num F.node = new Leaf (num, num.val) 4 构造DAG的过程 p 1 = Leaf (id, entry-a) p 8 =

文档评论(0)

1亿VIP精品文档

相关文档