《程序员的自我修养》读书笔记 第九周

                                              《程序员的自我修养》读书笔记

  我们平时在编程时一般只关心程序的编译连接过程,而很少去在意一段代码从编写到实现都经历了什么,因为目前常用的开发环境都是流行的集成开发环境,这些IDE一般都将编译连接一步完成。然而开发环境不是万能的,我们常常会被这些复杂的集成工具所提供的强大功能所迷惑,而忽略软件运行的过程和机制,所以当程序出现一些莫名其妙的错误时我们通常会束手无策,因此了解一段代码的运行机制对于我们处理一些跨平台复杂问题十分有帮助。

  首先是预编译,源代码文件和相关的头文件被编译器预编译成一个.i文件。编译器将所有的宏定义展开,处理掉所有的条件预编译指令,然后处理#include指令,将被包含的文件插入相应的位置,去除掉所有注释,添加行号和文件名标识,保留所有编译器指令。第二步是编译,就是将预编译之后的文件进行词法分析,语法分析等过程产生相应的汇编代码文件。

      然后进行的是汇编过程,将我们使用的高级语言展开成面向计算机的底层汇编代码,因为汇编语言十分简单,几乎每一条都对应一句机器指令,不需要指令优化,只是根据指令对照表一一翻译即可。下一步是链接,将各个文件链接在一起得到最终的可执行文件。编译器就是将高级语言翻译成机器语言的工具,高级语言给了程序员更多地自由,可以专注于程序逻辑本身,而尽量少考虑计算机本身的限制,使程序开发的效率大大提高,也增强了程序的可移植性。

posted @ 2018-05-17 21:01  ffy0701  阅读(164)  评论(0编辑  收藏  举报