编译原理

Alfred V. Aho

出版时间

2010-12-31

ISBN

9787111326748

评分

★★★★★

标签

编程

书籍介绍

本书是编译领域无可替代的经典著作,被广大计算机专业人士誉为“龙书”。本书上一版自1986年出版以来,被世界各地的著名高等院校和研究机构(包括美国哥伦比亚大学、斯坦福大学、哈佛大学、普林斯顿大学、贝尔实验室)作为本科生和研究生的编译原理课程的教材。该书对我国高等计算机教育领域也产生了重大影响。  第2版对每一章都进行了全面的修订,以反映自上一版出版20多年来软件工程。程序设计语言和计算机体系结构方面的发展对编译技术的影响。本书全面介绍了编译器的设计,并强调编译技术在软件设计和开发中的广泛应用。每章中都包含大量的习题和丰富的参考文献。  本书适合作为高等院校计算机专业本科生和研究生的编译原理与技术课程的教材,也可供广大计算机技术人员参考。

AI导读
核心看点
  • 编译领域经典教材,被业界誉为龙书
  • 全面介绍编译器设计与技术原理
  • 强调编译技术在软件开发中的应用
适合谁读
  • 计算机专业本科生及研究生
  • 从事编译器开发的专业技术人员
  • 对计算机科学底层原理感兴趣的读者
读前提醒
  • 理论抽象度高,建议配合课程学习
  • 第二版部分章节翻译略显生硬
  • 可作为工具书查阅,不适合速读
读者共识
  • 内容权威但难度极大,不易啃读
  • 适合系统学习原理,不适合实战
  • 习题丰富,是理解编译器的基石

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "在C++中,一个类的定义可能和它的部分或全部方法的定义分离。因此对于一个和类C相关联的名字x,可能存在一个在它作用域之外的代码区域,然后又跟着一个在它作用域内的代码区域(一个方法定义)。实际上,在这个作用域之内和之外的代码区域可能相互交替,直到所有的方法都被定义完毕。"
  • "In C++, a class definition may be separated from the definitions of some or all of its methods. Therefore, a name x associated with the class C may have a region of the code that is outside its scope, followed by another region (a method definition) that is within its scope. In fact, regions inside "
  • "标识符 a 是一个代表了表达式 (x + 1) 的宏。但 x 到底是什么呢?我们不能够静态地解释 x 。"
  • "Compiler design is full of beautiful examples where complicated real-world problems are solved by abstracting the essence of the problem mathematically. The study of compilers is mainly a study of how we design the right mathematical models and chose the right algorithms, while balacing the eed for "
  • "我们的目标是:以构造出来的分析树所产生的字符串与输入字符串匹配的方法构造分析树的其余部分。"
  • "The object is to construct the remainder of the parse tree in such a way that the string generated by the parse tree matches the input string."
  • "发现错误即停止运行的编译器不是一个好的编译器"
  • "The use of a rigorous mathematical foundation allows us to show that an optimization is correct and that it produces the desirable effect for all possible inputs."
作者简介
Alfred V.Aho,美国歌伦比亚大学教授,美国国家工程院院士,ACM和IEEE会士,曾获得IEEE的冯·诺伊曼奖。著有多部算法、数据结构、编译器、数据库系统及计算机科学基础方面的著作。 Monica S.Lam,斯坦福大学计算机科学系教授,曾任Tensilica的首席科学家,也是Moka5的首任CEO。曾经主持SUIF项目,该项目产生了最流行的研究用编译器之一。 Ravi Sethi,Avaya实验室总裁,曾任贝尔实验室高级副总裁和Lucent Technologies通信软件的CTO。他曾在宾夕法尼亚州立大学,亚利桑那州立大学和普林斯顿大学任教,是ACM会士。 Jefirey D.Ullman斯坦福大学计算机科学系教授和Gradiance CEO。他的研究兴趣包括数据库理论、数据库集成、数据挖掘和利用信息基础设施教学等。他是美国国家工程学院院士、IEEE会士,获得过ACM的Karlstrom杰出教育奖和Knuth奖。
目录
1 introduction
1.1 language processors
1.2 the structure of a compiler
1.3 the evolution of programming languages
1.4 the science of building a compiler

显示全部
用户评论
深入浅出,对没有相关背景的人作者显示出了尽量友好的态度。
经典之所以成为经典,不是没有原因。基本编译前端你能遇到的东西,龙书无所不包,书中的娓娓道来实让很多教科书汗颜。
中文读不懂。。。英文也读不懂。。。。
重讀教材。不明白為啥當年我學這門課的時候這麽痛苦,當時讀此教材非常煩躁以至於基本沒仔細讀過。可能是大了兩歲,心智成熟了。挺順暢。講解清楚,抽象化形象,體系層次清晰(雖然就那麽幾個編譯階段不分章節寫也不可能233)作編譯基礎教材再合適不過了,編譯的基礎是後面很多東西的基石。
看了部分章节,精力有限,不再展开。
终于通读了。
英文版的看过前两章节,还是可以看得懂的,例如语法词法分析,语意分析,都明白是干什么了。后面的ir生成以及对应的optiminzation都没有看!
收藏