能将高级语言转换成目标程序的是( 二 )


3、中间代码生成 。中间代码是源程序的一种内部表示 , 或称中间语言 。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确 , 特别是可使目标代码的优化比较容易实现 。中间代码即为中间语言程序 , 中间语言的复杂性介于源程序语言和机器语言之间 。中间语言有多种形式 , 常见的有逆波兰记号、四元式、三元式和树 。
4、代码优化 。代码优化是指对程序进行多种等价变换 , 使得从变换后的程序出发 , 能生成更有效的目标代码 。所谓等价 , 是指不改变程序的运行结果 。所谓有效 , 主要指目标代码运行时间较短 , 以及占用的存储空间较小 。这种变换称为优化 。
有两类优化:一类是对语法分析后的中间代码进行优化 , 它不依赖于具体的计算机;另一类是在生成目标代码时进行的 , 它在很大程度上依赖于具体的计算机 。对于前一类优化 , 根据它所涉及的程序范围可分为局部优化、循环优化和全局优化三个不同的级别 。
5、目标代码生成 。目标代码生成是编译的最后一个阶段 。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码 。目标代码有三种形式:可以立即执行的机器语言代码 , 所有地址都重定位;待装配的机器语言模块 , 当需要执行时 , 由连接装入程序把它们和某些运行程序连接起来 , 转换成能执行的机器语言代码;汇编语言代码 , 须经过汇编程序汇编后 , 成为可执行的机器语言代码 。
【能将高级语言转换成目标程序的是】目标代码生成阶段应考虑直接影响到目标代码速度的三个问题:一是如何生成较短的目标代码;二是如何充分利用计算机中的寄存器 , 减少目标代码访问存储单元的次数;三是如何充分利用计算机指令系统的特点 , 以提高目标代码的质量 。