编译原理教材配套课件.ppt

上传人:da****u 文档编号:1100913 上传时间:2018-12-07 格式:PPT 页数:126 大小:1.96MB
下载 相关 举报
编译原理教材配套课件.ppt_第1页
第1页 / 共126页
编译原理教材配套课件.ppt_第2页
第2页 / 共126页
编译原理教材配套课件.ppt_第3页
第3页 / 共126页
编译原理教材配套课件.ppt_第4页
第4页 / 共126页
编译原理教材配套课件.ppt_第5页
第5页 / 共126页
点击查看更多>>
资源描述

1、第 7章 语义分析与中间代码生成School of Computer Science & TechnologyHarbin Institute of Technology重点: 三地址码,各种语句的目标代码结构、语法制导定义与翻译模式。 难点: 布尔表达式的翻译,对各种语句的目标代码结构、语法制导定义与翻译模式的理解。* 2第 7章 语义分析与中间代码生成 7.1 中间代码的形式7.2 声明语句的翻译7.3 赋值语句的翻译7.4 类型检查7.5 控制结构的翻译7.6 回填7.7 switch语句的翻译7.8 过程调用和返回语句的翻译7.9 输入输出语句的翻译7.10 本章小结* 37.1 中间

2、代码的形式n 中间代码的作用n 过渡:经过语义分析被译成中间代码序列n 中间代码的形式n 中间语言的语句n 中间代码的优点n 形式简单、语义明确、独立于目标语言n 便于编译系统的实现、移植、代码优化n 常用的中间代码n 语法树 (6.3.5节 )n 逆波兰表示、三地址码 (三元式和四元式 )、 DAG图表示* 47.1.1 逆波兰表示 n 中缀表达式的计算顺序不是运算符出现的自然顺序,而是根据运算符间的优先关系来确定的,因此,从中缀表达式直接生成目标代码一般比较麻烦。 n 波兰逻辑学家 J. Lukasiewicz于 1929年提出了后缀表示法,其优点为:表达式的运算顺序就是运算符出现的顺序,

3、它不需要使用括号来指示运算顺序。* 57.1.1 逆波兰表示 n 例 7.1 下面给出的是一些表达式的中缀、前缀和后缀表示。中缀表示 前缀表示 后缀表示a+b +ab ab+a*(b+c) *a+bc abc+*(a+b)*(c+d) *+ab+cd ab+cd+*a:=a*b+c*d :=a+*ab*cd abc*bd*+:=* 67.1.2 三地址码 n 所谓三地址码,是指这种代码的每条指令最多只能包含三个地址,即两个操作数地址和一个结果地址。 n 如 x+y*z三地址码为: t1 := y*z t2 := x+t1n 三地址码中地址的形式:n 名字、常量、编译器生成的临时变量。* 77.

4、1.2 三地址码 n 例 7.2 赋值语句 a:=(-b)*(c+d)-(c+d)的三地址码如图 7.1所示 t1 := minus bt2 := c+dt3 := t1*t2t4 := c+dt5 := t3-t4a := t5图 7.1 a:=(-b)*(c+d)-(c+d)的三地址码* 87.1.2 三地址码 1形如 x:=y op z的赋值指令;2形如 x:= op y的赋值指令;3形如 x := y的复制指令;4无条件跳转指令 goto L;5形如 if x goto L (或 if false x goto L)的条件跳转指令;6形如 if x relop y goto L的条件跳

5、转指令;7过程调用和返回使用如下的指令来实现:param x用来指明参数;call p, n和 y=call p, n用来表示过程调用和函数调用;return y表示过程返回;8形如 x := yi和 xi := y的变址复制指令;9形如 x := &y、 x := *y和 *x := y的地址和指针赋值指令。* 9四元式 n 四元式是一种比较常用的中间代码形式,它由四个域组成,分别称为 op、 arg1、 arg2和 result。 op是一个一元或二元运算符, arg1和 arg2分别是 op的两个运算对象,它们可以是变量、常量或编译器生成的临时变量,运算结果则放入 result中。 图 7.2(a) 图 7.1中三地址码的四元式表示* 10三元式 n 为了节省临时变量的开销,有时也可以使用只有三个域的三元式来表示三地址码。三元式的三个域分别称为 op, arg1和 arg2, op, arg1和 arg2的含义与四元式类似,区别只是 arg1和 arg2可以是某个三元式的编号 (图 7.2(b)中用圆括号括起来的数字 ),表示用该三元式的运算结果作为运算对象。 图 7.2(b) 图 7.1中三地址码的三元式表示

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。