诚心地说,这是一本好教科书,但不是一本全能的书,也不是一本工具书。这本书不适合实践,里面通篇的抽象大道理,例子不多。如果你之前对编译原理不甚了解,或是想巩固对编译原理知识,这本书再适合不过了;如果你已经具备了编译知识,想自己动手构建一个编译器的话,我还是推荐你去看鲸书和虎书;如果你想做程序优化,RICE大学的那本书更适合。
相比20年前的第一版,龙书加入了不少内容,介绍了更多中间语言表示层次和优化,也单独分开章节介绍了指令级并行和过程间分析。第二版的内容减去第一版的内容,也就大概是这二十年来编译器发展的主要成果了 ---- 各种优化,并行,平台无关性。但是为什么编译器词法和语法解析部分没有怎么更新捏?因为这东西早就已经做到极致了。
总得来说,这是一本值得所有程序员一读的好书,但是相对于技术的发展,这本书的内容从现在看来过于狭隘和抽象。如果想要比较彻底地了解编译器对程序语言的作用和影响,这本书是远远不够的。
龙书不是万能书,是一本骗钱的好书。
http://compilerjobs.
楼上的不要太鸡冻了嘛,这只不过是一个书评而已。这本书是我的参考书之一,怎么会骂它呢。我学编译的时候用的是第一版,刚看完第二版就出来了,买来后发现仅是稍加改动,所以心里稍有不爽写出来,大家不要太在意。作为一个编译优化方向的研究人员,我岂敢对各元老出言不逊?
诚然,要学编译首先看龙书,因为这是基础。标量机的优化,看那本鲸书;并行机的优化,看Kennedy的。需要依赖优化,看Uptal Banjee的Loop Transformations for Restructuring Compiler那三本。但是无论如何,龙书所讲的是基础,具有非常好的参考价值。
不同意LZ的说法.
一.我不觉得他们是要骗钱.这种说法有点搞笑.对于学习编译原理的学生,其实第一版还不过时.
二.很多书.只是略微改一下就出第二版.第三版.这也很正常.不知道LZ为什么还要讲什么骗钱.书改进不好吗?至少对比第一版,第二版可以明显感觉到一些语句,还有习题位置的安排,章节结构等都有较大的改进.
---
明显的第二版要比第一版好.而且你要明白.这本书本身的定位.这是第一本编译原理的教科书.要学高端的优化之类的.可以看那本<advanced compiler design and implemenation>.每本书有每本书的定位.
明明自己也喜欢这本书.还这么讲.不知道你是什么意思.