本书是编译原理领域的鸿篇巨著,中文版尚未出版,英文版权已经输出到美国,将在世界范围内产生重要影响。从以下多个角度讲,本书都具有重要的里程碑意义:
它第一次让编译原理不再像是一门高深晦涩的“数学课”,而是一个可以调试、可以接触、可以真切感受的理论体系。本书用1140余幅信息量巨大的运行时结构图和视频动画取代了同类书中复杂枯燥的数学公式,更加立体和直观,生动地将编译后的执行程序在内存中的运行时结构图展现了出来;
它第一次将GCC源代码、编译原理、运行时结构、编译系统原理(包含汇编与链接)的内在关系、逻辑与原理梳理清楚了,并将它们结合成一个整体。真正能够让读者透彻掌握编译器如何运行和如何设计,以及为什么要这么设计;
它是第一本系统解读著名商用编译器GCC核心源代码的著作,GCC源代码一共有600万行,为了便于讲解和阅读,本书进行了取舍和裁剪,讲解了与编译本质相关的*核心的60万行代码。
全书一共8章,具体内容和逻辑如下:
第1章以一个C程序(先简单,后复杂)的运行时结构为依托,对程序编译的整体过程做了宏观讲述,让读者对编译有整体认识,这样更容易理解后面的内容。
第2~6章通过实际的程序案例、结合GCC的源代码,根据程序编译的顺序和流程,依次讲解了词法分析、语法分析、中间结构和目标代码的生成,遵循了由易到难的原则,先是通过简单程序讲解清楚原理,然后再通过复杂程序强化理解。
第7章讲解了与编译器紧密关联的汇编器和链接器,能让读者对可执行程序的*终生成有一个完整的了解。
第8章讲解了预处理,就编译器的执行顺序而言,预处理器的执行比较靠前,之所以放在*后讲,是因为它比较独立,在读者已经了解整个编译过程中之后再讲解,读者会更容易理解。