《程序是怎样跑起来的》第八章读后感
本章主题是从源文件到可执行文件。上章也有讲到源代码(source code),源代码就是用编程语言编写的程序,也称为源程序,用源代码保存的文件叫源文件。
在第七章中也有提到,CPU只能解释自身固有的机器语言,机器语言的程序叫本地代码,本地代码的内容其实就是各种数值的罗列,所以要将源代码转换为本地代码,负责将源代码转换为本地代码的程序被称为编译器,当然,每个编程语言都需要用到其专有的编译器,Java语言常用到的是eclipse,eclipse是一种流行的集成开发环境,被称为IDE,其中内置了自己的Java编译器。由于CPU的类型和本地代码类型的不同,以及运行环境不同所需要的编译器也不相同,还有一种交叉编译器,它生成的是和运行环境中CPU不同的CPU所使用的本地代码。但是编译器将源代码转换后生成的目标文件是无法直接运行的,因为其中的代码是本地代码,所以书中讲到一种处理方式叫“链接”处理,作者使用Borland C++ Complier5.5(一种年代稍微久远一点的编译器,还是上章讲到的 MSDOS研发的)来演示编译和链接处理的过程,简单来说,链接处理就是把多个目标文件结合生成一个EXE文件来处理,而运行这个链接处理的就叫做链接器。链接器指定库文件后把需要的目标文件抽取出来再同其他目标文件结合生成EXE文件。其中提到的一个概念是库文件,库文件指的是把多个目标文件集成保存在一个文件中的一种形式,还提到两个概念————外部符号和标准函数,外部符号指其他目标文件中的变量或函数,标准函数是指通过库文件形式和编译器一起提供的函数。
第八章主要讲的是对代码的编译、链接处理的运行过程,还有编译器的作用,这些知识都是我们需要掌握的。