龙、虎、鲸书杂谈

关于编译有三本书:

龙书: 《Compilers:Principles, Techniques, &Tools》

虎书:《Modern Compiler Implement in C》 这本书还有JAVA和ML版本

鲸书:《Advanced Compiler Design and Implementation》

这三本书在编译领域非常出名,其中名气最大的应该属于龙书了,也是目前仍然有版本在印刷发行的。虎书和鲸书国内貌似没有继续发行了,我找英文版找了好久,都没有找到合适的,只好买的二手的旧书。三本书凑齐也挺不容易的。

这三本书,到目前为止,除了有时候查东西翻翻,正经读的最多的还算是龙书。虎书和鲸书都只读了一章。个人也想理一下这三本书的思路,好利于自己的读书和学习。曾经看到有人觉的最适合入门读的是鲸书,这点我实在是不敢苟同。除非是个人编译基础非常好,而且重点在于研究编译里的优化,可以直接读鲸书。其他的情况,都不建议直接读鲸书的。

龙书,对整个编译的过程,介绍的很详细,而且很多时候,对编译理论中很多的技术都介绍的很详细,给人感觉像是百科全书的感觉。你能用到的,基本在龙书里都能找到。正是这个原因,也让这本书读起来有点费劲。这本书对编译理论中的优化部分覆盖的不多,等于是它和鲸书刚好结合起来,构成编译的大百科,一个不侧重优化,一个侧重优化,都很详尽,将所有涉及的知识都覆盖了。

虎书更像是龙书和鲸书结合之后的简化版本,是建议作为学习编译的教材一类的书,既可以一学期学完,只学编译的基本知识,也可以两学期学完,继续学编译的高级topics,大部分也是关于优化的内容。虎书还有一个特别好的有点,就是很接近与实际,谈一些理论知识的时候,都会去拿实际的代码去说明一件事情,这样更加的利于学习时候的理解,而不是被一大堆的理论完全搞的摸不着头脑。

所以综合来看,如果技术不是非常的扎实,那还是建议从虎书开始学习,边学边练,慢慢的把基础打扎实,然后再继续龙书和鲸书的学习。编译原理是大学本科时候的必修课,可能很多人觉的自己学过了,基础应该可以,但是依然推荐从虎书开始,实际工作中,虽然大家都学过编译原理了,但是到最后能把整个流程的大致环节说清楚的,就算是不错的了。

转载于:https://www.cnblogs.com/ainima/p/6331924.html

你可能感兴趣的:(龙、虎、鲸书杂谈)