时间:2019-2-2来源:本站原创作者:佚名

今天这个标题好难为我啊!本来想叫《宇宙最酷DIY》,怕你们没打开就跑了,最后这个标题貌似不够酷,不过你们应该知道我说的是啥吧?

说来,日系自制系列已经出版了6本书,每本书都集结了一帮超爱动手的技术控拥趸。自制系列如此受欢迎,除了DIY,另一个重要的原因是日系图书对计算机底层原理强大的解剖能力。

以最新出版的《自制编译器》为例,即使你并不想动手自制编译器,下面这本书仍然是你学习编译器极为靠谱的参考书。这本书最大的两个特征会告诉你为什么。

本书在微博上发布新书消息之后备受青睐。互动已上市,京东、亚马逊、当当一周后上市。

本书两大特征

第一,实际动手实现了真正的编译器;

第二,涉及了以往编译器相关书籍所不曾涉及的内容。

先说第一点。

本书通篇讲述了“C?”这种语言的编译器的制作。C?基本上是C语言的子集,并实现了包括指针运算等在内的C语言的主要部分。因此可以说,本书实现的是实实在在的编译器,而并非有诸多限制的玩具。

更具体地说,本书实现的C?编译器是以运行在x86系列CPU上的Linux为平台的。之所以选择x86系列的CPU,是因为这是最普及的CPU,相应的硬件非常容易找到。选择Linux是因为从标准库到程序运行环境的代码都是公开的,只要你有心,完全可以自己分析程序的结构。

可能有些作者不喜欢把话题局限于特定的语言或者OS,而笔者却恰恰更倾向于在一开始就对环境进行限定。因为比起一般化的说明,从具体的环境出发,再向一般化扩展的做法要简单、直观得多。笔者赞成最终把话题往一般化的方向扩展,但并不赞成一开始就一定要做到一般化。

再说第二点。

本书并不局限于书名中的“编译器”,对以编译器为中心的编程语言的运行环境,即编译器、汇编器、链接器、硬件、运行时环境都有所涉及。

编译器生成的程序的运行不仅和编译器相关,和汇编器、链接器等软件以及硬件都密切相关。因此,如果想了解编译器以及程序的运行结果,对上述几部分内容的了解当然是必不可少的。不过这里的“当然”现在看起来也逐渐变得没那么绝对了。

只讲编译器或者只讲汇编语言的书已经多得烂大街了,只讲链接器的书也有一些,但是贯穿上述所有内容的书至今还没有。写编译器的书,一涉及具体的汇编语言,就会注上“请参考其他书籍”;写汇编语言的书,对于OS的运行环境问题却只字不提;写链接器的书,如果读者不了解编译器等相关知识,也就只能被束之高阁了。

难道就不可能完整地记述编程语言的运行环境吗?笔者认为是可能的。只要专注于具体的语言、具体的OS以及具体的硬件,就可以对程序运行的所有环节进行说明了。基于这样的想法,笔者进行了稍显鲁莽的尝试,并最终写成了本书。

下面这个完整的目录截图,能很好地说明这本书所讲解的内容。

(点击可查看大图)

扫描







































治疗白癜风最有效的医院
白癜风有哪些什么症状

转载请注明原文网址:http://www.gzdatangtv.com/cksc/cksc/12024.html

------分隔线----------------------------