中间代码优化
考试要求: 掌握     
知识路径:  > 计算机系统基础知识  > 计算机软件知识  > 程序设计语言和语言处理程序知识  > 汇编、编译、解释系统的基础知识和基本工作原理  > 编译程序的基本原理


 
       1)局部优化
       局部优化是在基本块上的优化。基本块是指程序中一个顺序执行的语句序列,其中只有一个入口和一个出口。划分基本块的方法如下。
       (1)求出四元式程序中各个基本块的入口语句。
       (2)对每一入口语句,构造其所属的基本块。它是由该语句到下一入口语句(不包括下一入口语句),或到一条转移语句(包括该转移语句),或到一条停语句(包括该停语句)之间的语句序列组成的。
       (3)凡未被纳入某一基本块的语句,都是程序中控制流程无法到达的语句,因而也是不会被执行到的语句,因此可以把它们删除。
       一个基本块可以用一个DAG(有向无环)图表示。在一个基本块内,通常可进行以下3种优化,即合并已知量、删除无用赋值和删除多余运算。
       2)控制流图和循环优化
       (1)控制流图。
       一个程序的控制流图是一个有向图,其节点是程序中的基本块,它有唯一的首节点,即包含程序第一条语句的基本块,从首节点出发,到控制流图中的每个节点都存在路径。
       由程序的各基本块构造相应控制流图的方法是:对于程序中的两个基本块BiBj,若Bj紧接着Bi被执行,则从Bi引一条有向边到Bj,称BiBj的直接前驱,BjBi的直接后继。
       (2)循环优化。
       循环就是控制流图中具有唯一入口节点的强连通子图,从循环外进入循环时,必须首先经过循环的入口节点。
       基于循环的优化处理有代码外提、强度削弱、删除归纳变量等。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有