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

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

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

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

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


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


相关文章
2017计科01-08编译原理练习题一运行时空间组织管理&优化&目标代码生成
2017计科01-08编译原理练习题一运行时空间组织管理&优化&目标代码生成
2017计科01-08编译原理练习题一运行时空间组织管理&优化&目标代码生成
|
算法 Java C#
计算机程序设计人门参考
家里的亲戚今年入学学习计算机专业,由于刚入门,让推荐一些入门的资料和学习步骤,结合实际的经验,汇总了一些资料   对于计算机的入门,就是多看多实际操作。 最好基础、程序语言和算法、开发工具三个大类逐步学习 第一学期,基础需要清除和理解,语言方面有个概念。
972 0
|
前端开发
前端学习案例2-记忆函数和性能优化1
前端学习案例2-记忆函数和性能优化1
75 0
前端学习案例2-记忆函数和性能优化1
|
自然语言处理 小程序 编译器
|
8月前
|
编译器 vr&ar C++
c++primer plus 6 读书笔记 第七章 函数--C++的编程模块
c++primer plus 6 读书笔记 第七章 函数--C++的编程模块
|
5月前
|
存储 Java 编译器
经验总结:源代码-目标代码的区别
源代码是由程序员用高级语言编写的可读文本文件,需编译成机器可执行的二进制目标代码。目标代码由编译器生成,包含机器指令,对机器可读但对人类不易理解。源代码便于修改,而目标代码需重新编译以反映更改。源代码不受系统限制,目标代码则特定于系统。此外,链接程序处理源文件间及库函数的引用,将目标文件连接成可执行文件。Java中的本地方法则允许调用非Java语言编写的代码,实现与底层系统的交互,提高程序性能或实现特定功能。
266 4
|
安全
程序人生 - 怡宝和农夫山泉有什么区别,哪个更好一些?
程序人生 - 怡宝和农夫山泉有什么区别,哪个更好一些?
268 0
|
Java Unix 程序员
附录B 编程的本质
附录B 编程的本质 编程的本质 N 尼古拉斯·沃斯(Niklaus Wirth,1934年2月15日—),生於于瑞士温特图尔,是瑞士计算机科学家。Pascal语言之父。
1341 0
|
7月前
|
机器学习/深度学习 开发框架 数据可视化
我们可以从系统工程的角度来讨论如何优化组织架构,并给出一些可能涉及的Python应用领域的示例。
我们可以从系统工程的角度来讨论如何优化组织架构,并给出一些可能涉及的Python应用领域的示例。

热门文章

最新文章