程序设计语言编译原理第三版第10章.ppt
《程序设计语言编译原理第三版第10章.ppt》由会员分享,可在线阅读,更多相关《程序设计语言编译原理第三版第10章.ppt(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第十章优化优化:如何对程序进行各种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。注:(1)优化可在编译的各个阶段进行,但最主要的一类优化是在 目标代码生成以前,对语法分析后的中间代码进行的;(2)另一类重要的优化是生成目标代码时进行的,它在很大程 度上依赖于具体的计算机 本章不做讨论10.1 概述10.2 局部优化10.3 循环优化(略)10.4 数据流分析(略)第十章优化10.1 概述一、优化的目的是为了产生更高效的代码,需遵循以下 的原则:1.等价原则:经过优化后不应改变程序运行的结果。2.有效原则:使优化后所产生的目标代码运行时间较短,占用的存储空间较小。3.合算原则:应尽可
2、能以较低的代价取得较好的优化效果。二、各个环节的优化1.源代码设计2.设计语义时3.中间代码生成后4.目标代码10.1 概述三、常用的优化技术1.删除公共子表达式2.复写传播3.删除无用代码4.代码外提5.强度削弱6.删除归约变量目录目录目录10.1 概述10.2 局部优化一、基本块及流图1.基本块:指程序中一顺序执行的语句序列,其中只有一个 入口和一个出口,入口就是其中的第一个语句,出 口就是其中的最后一个语句。2.基本块的划分:(1)求出四元式程序中各个基本块的入口语句;(2)对以上求出的每一入口语句,构造其所属的基本块;(3)凡未被纳入某一基本块中的语句,都是程序中控制流 无法到达的语句,从而也是不会被执行到的语句,我们 就可以把它们从程序中删除。举例:考察下面的三地址代码程序(1)Read X(2)Read Y(3)R:=X mod Y(4)if R=0 goto(8)(5)X:=Y(6)Y:=R(7)goto(3)(8)write Y(9)haltB1B2B3B4B1B2B3 B410.2 局部优化3.流图及其生成举例:对上例中的程序的各基本块构成的流图如下所示:(1)Real X(2)Real Y(3)R:=X mod Y(4)If R=0 goto(8)(5)X:=Y(6)Y:=R(7)goto(3)(8)Write Y(9)halt10.2 局部优化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计语言 编译 原理 第三 10
限制150内