编译原理(三)目标代码的生成与优化基本概念

简介: 编译原理(三)目标代码的生成与优化基本概念

前边产生中间代码之后,后边的事儿就交给了后端,编译器后端主要包括代码生成器和目标代码优化器

代码生成器主要是把中间代码变成目标机器代码,这个过程十分依赖于目标机器,因为不同的机器有不同的字长.寄存器,证书数据类型和浮点数数据类型等

目标代码优化器则对上述代码进行优化,比如寻找合适的寻址方式,使用位移来替代乘法计算,删除指令等


由于现代的CPU相当的复杂,为了支持CPU的复杂特性,编译器的机器指令优化过程也十分复杂.是编译过程更为复杂的是有些编译器支持多种硬件平台,允许编译器编译出多种目标的CPU代码,比如GCC编译器就几乎支持所有的CPU平台,这也导致编译器的指令生成过程更为复杂.


目录
打赏
0
0
0
0
6
分享
相关文章
2017计科01-08编译原理练习题一运行时空间组织管理&优化&目标代码生成
2017计科01-08编译原理练习题一运行时空间组织管理&优化&目标代码生成
2017计科01-08编译原理练习题一运行时空间组织管理&优化&目标代码生成
c++primer plus 6 读书笔记 第七章 函数--C++的编程模块
c++primer plus 6 读书笔记 第七章 函数--C++的编程模块
我们可以从系统工程的角度来讨论如何优化组织架构,并给出一些可能涉及的Python应用领域的示例。
我们可以从系统工程的角度来讨论如何优化组织架构,并给出一些可能涉及的Python应用领域的示例。
【进阶】C 语言表驱动法编程原理与实践
【进阶】C 语言表驱动法编程原理与实践
268 0
欢迎来到Jsp编程课时十三——分解原理:构建自己的思路,目标更好的理解对数据的增伤改查的原理和过程。
欢迎来到Jsp编程课时十三——分解原理:构建自己的思路,目标更好的理解对数据的增伤改查的原理和过程。
122 0
编写程序的目的?为什么要学习编程
编写程序的目的?为什么要学习编程
212 0
C#面向对象程序设计课程实验一:实验名称:C#语言基础、程序流程控制
C#面向对象程序设计课程实验一:实验名称:C#语言基础、程序流程控制
C#面向对象程序设计课程实验一:实验名称:C#语言基础、程序流程控制
Mysql数据库基础第七章:流程控制结构
流程控制语句能够控制存储过程中sql语句的执行程序。主要分为三大类 - `顺序结构`:程序依次运行 - `分支结构`:程序根据条件选择执行 - `循环结构`:程序满足某条件时,重复执行
程序人生 - 怡宝和农夫山泉有什么区别,哪个更好一些?
程序人生 - 怡宝和农夫山泉有什么区别,哪个更好一些?
268 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等