自己动手构造编译系统:编译、汇编与链接2.1 编译程序的设计

第2章    编译系统设计    麻雀虽小,五脏俱全。 ——《围城》       一个完善的工业化编译系统是非常复杂的,为了清晰地描述它的结构,理解编译系统的基本流程,不得不对它进行“大刀阔斧”地删减。这为自 己动手实现一个简单但基本功能完整的编译系统提供了可能。虽然本书设计的是...

自己动手构造编译系统:编译、汇编与链接1.5 本章小结

1.5  本章小结   本章从编程最基本的话题聊起,描述了初学者接触程序时可能遇到的疑惑,并从编程实践经验中探索代码背 后的处理机制。然后,使用最简单的“Hello World !”程序展现主流编译器GCC对代码的处理流程。最后, 我们在工业化编译系统的基础上做了一定的限制,提出...

自己动手构造编译系统:编译、汇编与链接1.4 设计自己的编译系统

1.4  设计自己的编译系统        根据以上描述,我们意欲构造一个能将高级语言转化为可执行文件的编译系统。高级语言语法由我们自己定义,它可以是C语言语法,也可以是它的一个子集,但是无论如何,该高级语言由我们根据编程需要自行设计。另外,我们要求生成的可执行文件能正...

自己动手构造编译系统:编译、汇编与链接1.3.4 链接

1.3.4  链接             使用GCC命令进行目标文件链接很简单: gcc hello.o –o hello   GCC默认使用动态链接,如果要进行静态链接,需加上-static选项: gcc hello.o –o hell...

自己动手构造编译系统:编译、汇编与链接1.3.3 汇编

1.3.3  汇编                接着,GCC使用汇编器对hello.s进行汇编,命令如下: $gcc –c hello.s –o hello.o   生成的目标文件hello.o,Linux下称之为可重定位目标文...

自己动手构造编译系统:编译、汇编与链接1.3.2 编译

1.3.2  编译         接下来GCC对hello.i进行编译,命令如下: $gcc –S hello.i –o hello.s   编译后产生的汇编文件hello.s内容如下:      .file ...

自己动手构造编译系统:编译、汇编与链接1.3.1 预编译

1.3.1  预编译           GCC对源文件的第一阶段的处理是预编译,主要是处理宏定义和文件包含等信息。命令格式如下: $gcc –E hello.c –o hello.i   预编译器将hello.c处理后输出到文件hello.i,he...

自己动手构造编译系统:编译、汇编与链接1.3 GCC的工作流程

1.3  GCC的工作流程          在着手构造编译系统之前,需要先介绍编译系统应该做的事情,而最具参考价值的资料就是主流编译器的实现。GNU的GCC编译器是工业化编译器的代表,因此我们先了解GCC都在做什么。   我们写一个最简单的“HelloWor...

自己动手构造编译系统:编译、汇编与链接1.2 历史渊源

1.2  历史渊源       历史上很多新鲜事物的出现都不是偶然的,计算机学科的技术和知识如此,编译系统也不例外,它的产生来源于编程工作的需求。编程本质上是人与计算机交流,人们使用计算机解决问题,必须把问题转化为计算机所能理解的方式。当问题规模逐渐增大时,编程的劳动量...

自己动手构造编译系统:编译、汇编与链接1.1 从编程聊起

第1章    代码背后   知其然,并知其所以然。 ——《朱子语类》 1.1  从编程聊起    说起编程,如果有人问我们敲进计算机的第一段代码是什么,相信很多人会说出同一个答案——“Hello World !”。编程语言的教材一般都会把这段代码作为书中的第一个例子呈现给读者。当我们按照课...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。