文档介绍:第七章中间代码生成
本章内容
介绍几种常用的中间表示:后缀表示、图形表示和三地址代码
用语法制导定义和翻译方案的方法来说明程序设计语言的结构怎样被翻译成中间形式
分析
器
静态
检查
器
中间
代码
生成
器
中间
代码
记号流
代码
生成
器
中间语言
后缀表示
表达式E的后缀表示可以如下归纳定义
如果E是变量或常数,那么E的后缀表示就是E本身。
中间语言
后缀表示
表达式E的后缀表示可以如下归纳定义
如果E是变量或常数,那么E的后缀表示就是E本身。
如果E是形式为E1 opE2的表达式,那么E的后缀表示是E1 E2 op,其中E1和E2分别是E1和E2的后缀表示。
中间语言
后缀表示
表达式E的后缀表示可以如下归纳定义
如果E是变量或常数,那么E的后缀表示就是E本身。
如果E是形式为E1 opE2的表达式,那么E的后缀表示是E1 E2 op,其中E1和E2分别是E1和E2的后缀表示。
如果E是形式为(E1)的表达式,那么E1的后缀表示也是E的后缀表示。
中间语言
后缀表示不需要括号
(8 4) + 2 的后缀表示是8 4 2 +
中间语言
后缀表示不需要括号
(8 4) + 2 的后缀表示是8 4 2 +
后缀表示的最大优点是便于计算机处理表达式
中间语言
后缀表示不需要括号
(8 4) + 2 的后缀表示是8 4 2 +
后缀表示的最大优点是便于计算机处理表达式
后缀表示很容易拓广到含一元算符的表达式
中间语言
后缀表示不需要括号
(8 4) + 2 的后缀表示是8 4 2 +
后缀表示的最大优点是便于计算机处理表达式
后缀表示很容易拓广到含一元算符的表达式
后缀表示也可以拓广到表示赋值语句和控制语句,但很难用栈来描述它的计算
中间语言
图形表示
语法树是一种图形化的中间表示
assign
a
+
+
b
c
d
c
d
uminus
(a) 语法树
a := (b + cd ) + cd的图形表示
中间语言
图形表示
语法树是一种图形化的中间表示
有向无环图也是一种中间表示
assign
a
+
+
b
c
d
c
d
uminus
assign
a
+
+
b
c
d
uminus
(a) 语法树
(b) dag
a := (b + cd ) + cd的图形表示