第一图书网

编译原理

Alfred V. Aho,Monica S. Lam,Ravi Sethi,Jeffrey D. Ullman 机械工业
出版时间:

2009-5  

出版社:

机械工业  

作者:

Alfred V. Aho,Monica S. Lam,Ravi Sethi,Jeffrey D. Ullman  

页数:

412  

译者:

赵建华,郑涛,戴新宇  

Tag标签:

无  

前言

构造编译器的原理和技术是计算机科学技术领域中一个非常重要的组成部分,指导人们构造能够生成正确。高效的代码的编译器。现在的绝大部分软件都是使用高级程序设计语言编写的,需要使用编译器来得到可运行代码,因此编译原理和技术对于构造正确。可靠。高效的软件是非常重要的。经过了50年的研究发展,编译技术已经使得人们可以为各种高级编程机制生成高效的代码,使得人们可以使用更加抽象的语言来编写高效的软件。但硬件技术的进步仍然对编译技术提出了新的挑战。比如多核PU的广泛应用要求更优秀的程序分析技术和并行编译器。因此,编译原理和技术在将来仍然是一个重要的研究课题。Aho等人编写的《编译原理》是一本经典的教材。这本书不仅包含了编译器构造的基本原理和技术,还包含了很多和编译相关的高级技术。对于专业技术人员来说,这是一本很全面的参考书目。但是书中的很多内容超出了本科教学的要求,不符合中国的本科教材的习惯。因此,出版社委托我们对这本书进行改编,主要的工作是删减一些不需要在本科教学过程中讲授的内容。保留下的内容包括词法分析。语法分析。语义分析。中间代码生成,以及运行时刻环境。优化和代码生成方法的基本技术。我们删去了原书的第十章。第十一章和第十二章。这三章的内容是关于并行性和程序分析的高级议题,一般不对本科生讲授。此外,我们对原书第九章机器无关优化的内容进行了删减,保留了一些基本的数据流优化算法。我们还删减了一些高级的算法和技术,包括运行时刻环境中的短停顿垃圾收集算法。类型检查中的类型推导和合一算法,高效构造DF算法等。另外,我们还删去了一些与实现细节有关的技术,比如词法分析中缓冲区的管理。语法分析中LR分析表的压缩技术等。删去了这些高级内容之后,保留部分已经可以在一个学期的本科生课程中讲完。当然,考虑到不同学校有不同的专业要求,任课教师仍然可以考虑舍弃一些内容,比如第八章中关于代码生成的高级议题编译原理是一门比较难学的课程。主要原因在于它包含了很多理论性的东西,抽象程度比较高,而且还包含了很多复杂的算法和用于编译器构造的抽象数学概念。我建议学生学习的时候可以先阅读本书的第二章。第二章的内容可以帮助大家了解编译器的基本构造和功能,然后在学习后续各章节的时候加深理解。自己动手编写一个小型语言的编译器也是一个很好的学习方法。使用Y和Lex等工具之后,编写一个这样的编译器并不需要很大的工作量,却可以有效帮助大家深入理解各种编译技术。

内容概要

  《编译原理》是编译原理课程方面的经典教材,全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,本书进行了全面修订,涵盖了编译器开发方面最新进展。每章中都提供了大量的实例及参考文献。  本书基于该书第2版进行改编,内容更加精练和实用,体系更加符合国内教学情况,适合作为高等院校计算机及相关专业本科生的编译原理课程的教材,也是广大研究人员和技术人员的极佳参考读物。  本书是编译领域无可替代的经典著作,被广大计算机专业人士誉为“龙书”。本书上一版自1986年出版以来,被世界各地的著名高等院校和研究机构(包括美国哥伦比亚大学。斯坦福大学、哈佛大学、普林斯顿大学。贝尔实验室)作为本科生和研究生的编译原理课程的教材。该书对我国高等计算机教育领域也产生了重大影响。  第2版对每一章都进行了全面的修订,以反映自上一版出版20多年来软件工程、程序设计语言和计算机体系结构方面的发展对编译技术的影响。第2版全面介绍了编译器的设计,并强调编译技术在软件设计和开发中的广泛应用。每章中都包含大量的习题和丰富的参考文献。  本书基于该书第2版进行改编,保留其中的基本内容,压缩或删除了一些高级内容,更适合作为国内高校计算机及相关专业本科生编译原理课程教材。

作者简介

Alfred V.Aho,美国哥伦比亚大学教授,美国国家工程院院士,ACM和IEE会士,曾获得IEEE的冯•诺伊曼奖。著有多部算法、数据结构、编译器、数据库系统及计算机科学基础方面的著作。

书籍目录

出版者的话改编者序前言第1章 引论 1.1 语言处理器 1.2 一个编译器的结构  1.2.1 词法分析  1.2.2 语法分析  1.2.3 语义分析  1.2.4 中间代码生成  1.2.5 代码优化  1.2.6 代码生成  1.2.7 符号表管理  1.2.8 将多个步骤组合成趟  1.2.9 编译器构造工具 1.3 程序设计语言的发展历程  1.3.1 走向高级程序设计语言  1.3.2 对编译器的影响  1.3.3 1.3节的练习 1.4 构建一个编译器的相关科学  1.4.1 编译器设计和实现中的建模  1.4.2 代码优化的科学 1.5 编译技术的应用  1.5.1 高级程序设计语言的实现  1.5.2 针对计算机体系结构的优化  1.5.3 新计算机体系结构的设计  1.5.4 程序翻译  1.5.5 软件生产率工具 1.6 程序设计语言基础  1.6.1 静态和动态的区别  1.6.2 环境与状态  1.6.3 静态作用域和块结构  1.6.4 显式访问控制  1.6.5 动态作用域  1.6.6 参数传递机制  1.6.7 别名  1.6.8 1.6节的练习 1.7 第1章总结 1.8 第1章参考文献第2章 一个简单的语法制导翻译器 2.1 引言 2.2 语法定义  2.2.1 文法定义  2.2.2 推导  2.2.3 语法分析树  2.2.4 二义性  2.2.5 运算符的结合性  2.2.6 运算符的优先级  2.2.7 2.2节的练习 2.3 语法制导翻译  2.3.1 后缀表示  2.3.2 综合属性  2.3.3 简单语法制导定义  2.3.4 树的遍历  2.3.5 翻译方案  2.3.6 2.3节的练习 2.4 语法分析  2.4.1 自顶向下分析方法  2.4.2 预测分析法  2.4.3 何时使用产生式  2.4.4 设计一个预测分析器  2.4.5 左递归  2.4.6 2.4节的练习 2.5 简单表达式的翻译器  2.5.1 抽象语法和具体语法  2.5.2 调整翻译方案  2.5.3 非终结符号的过程  2.5.4 翻译器的简化  2.5.5 完整的程序 2.6 词法分析  2.6.1 剔除空白和注释  2.6.2 预读  2.6.3 常量  2.6.4 识别关键字和标识符  2.6.5 词法分析器  2.6.6 2.6节的练习 2.7 符号表  2.7.1 为每个作用域设置一个符号表  2.7.2 符号表的使用 2.8 生成中间代码  2.8.1 两种中间表示形式  2.8.2 语法树的构造 2.8.3 静态检查  2.8.4 三地址码  2.8.5 2.8节的练习 2.9 第2章总结第3章第4章 语法分析第5章 语法制导的翻译第6章 中间代码生成第7章 运行时刻环境第8章 代码生成第9章 机器无关优化附录 一个完整的编译器前端

章节摘录

插图:第1章 引论程序设计语言是向人以及计算机描述计算过程的记号。如我们所知,这个世界依赖于程序设计语言,因为在所有计算机上运行的所有软件都是用某种程序设计语言编写的。但是,在一个程序可以运行之前,它首先需要被翻译成一种能够被计算机执行的形式。完成这项翻译工作的软件系统称为编译器(compiler)。本书介绍的是设计和实现编译器的方法。我们将介绍用于构建面向多种语言和机器的翻译器的一些基本思想。编译器设计的原理和技术还可以用于编译器设计之外的众多领域。因此,这些原理和技术通常会在一个计算机科学家的职业生涯中多次被用到。研究编译器的编写将涉及程序设计语言、计算机体系结构、形式语言理论、算法和软件工程。在本章中,我们将介绍语言翻译器的不同形式,在高层次上概述一个典型编译器的结构,并讨论了程序设计语言和硬件体系结构的发展趋势。这些趋势将影响编译器的形式。我们还将介绍关于编译器设计和计算机科学理论的关系的一些事实,并给出编译技术在编译领域之外的一些应用。最后,我们将简单论述在我们研究编译器时需要用到的重要的程序设计语言概念。


编辑推荐

《编译原理(本科教学版第2版)》是编译领域无可替代的经典著作,被广大计算机专业人士誉为“龙书”。《编译原理(本科教学版第2版)》上一版自1986年出版以来,被世界各地的著名高等院校和研究机构(包括美国哥伦比亚大学、斯坦福大学、哈佛大学、普林斯顿大学、贝尔实验室)作为本科生和研究生的编译原理课程的教材。该书对我国高等计算机教育领域也产生了重大影响。编译领域里程碑式的经典著作——龙书,20年后终于出版新版!这是一个延绵30年的故事,这是一部关于龙书的传奇!最新版本,增添两章节内容,使龙书地位更权威!第2版对每一章都进行了全面的修订,以反映自上一版出版20多年来软件工程。程序设计语言和计算机体系结构方面的发展对编译技术的影响。《编译原理(本科教学版第2版)》全面介绍了编译器的设计,并强调编译技术在软件设计和开发中的广泛应用。每章中都包含大量的习题和丰富的参考文献。《编译原理(本科教学版第2版)》适合作为高等院校计算机专业本科生和研究生的编译原理与技术课程的教材,也可供广大计算机技术人员参考。1977年,Alfred V.Aho和Jeffrey D.Ullman合作出版了《Principies of Compilet Design》,封面是一位骑士和一只恐龙,那恐龙是绿色的,因此被称为龙书或绿龙书。1986年,原来的两位作者加上Ravi Sethi,升级了前一《编译原理(本科教学版第2版)》,书名改为《compiIers:Principles,Techniques and Tools》,封面依然沿用骑士和恐龙,那恐龙是红色的,因此被称为龙书二或者红龙书。又过了一个9年又一个9年,编译领域的巨无霸——龙书始终都没有升级。终于在2006年底,龙书升级了。作者又增加了Monica S.Lam,名字与龙书二相同,封面依然沿用恐龙和武士的设计,这次的龙是紫色的,因此被称为龙书三或者紫龙书。

图书封面

图书标签Tags

广告

下载页面


编译原理 PDF格式下载



编译原理(本科教学版)内容不错,值得购买。


编译原理是比较难的计算机理论,但这本书讲解得很详细,基本上能看懂了~


老师推荐的很经典的编译原理方面的书,值得一看


书的包装很好,很精美,一看就是正版的图书,所以用起来也很放心,不用担心出错。这本书是老师推荐买的,说是编译原理中的经典之作,非常值得一看!


龙书,没的说,编译教材的经典


编译领域最经典著作!!


本科版的书很适合,送到的时候包着膜全新的


适合本科生用,学校发的教材……一言难尽啊


这本书讲得很详尽,有很多实例,适合自学者


很简洁的一本书,把原书让人看上去就头大的冗杂部分删掉了,适合上课和考试复习用。


买了读了一下子我就表示要放弃了,后来也没有去计科这个专业,所以这本书大概是浪费了。


经典系列书籍 学习中


很有用的,起码对软件学院的学生而言


龙书的确是名不虚传,但是如果对Java不熟悉的人或许看得会比较吃力,全书主要是围绕Java的面向对象来讲述的,环环相扣,难度比较大,是一本不可多得的好书


学校订的教材,虽然很难懂


包装很好啊,一看就是正版的图书,可惜买来老师说不用这本教材了! T_T


我拿到的包裹中有5本书,只有这一本有透明塑料薄膜包装,心里感觉干净些。


书的内容不错,不过有点不够细致


书得内容很不错哦


书很好,里面例子也很多,很值得看的一本书。


不适合刚入门的看


内容不错!质量挺好的。


一切都很好,计科学生一定要看!


老师推荐的书,说看完一定会受益匪浅的.还没看呢,希望能好好看看.


要是我选员工,首先问他们基础怎么样?这科没上九十分,不要来找工作啊。


挺好,挺霸气


看起来还不错,值得一看


没看不做过多评价。应该是正版


内存很棒


正在读,不知道


值得购买阅读与收藏


早就想买了,终于有货了


东西很好哦!


还没看,浏览一下,还不错。


我的编译原理课程的指定教材。书本质量纸质都不错。只是编写内容有点混乱,也可能是老师教的顺序打乱了吧,才给我这种感觉。


龙书的教材版,很不错


正在阅读,相比于国内某些教材,讲的还算比较不错。


看了感觉有点难,慢慢研究,听说书中的思想和方法能用得上。


龙书


印刷得很好,书的内容不错


不错 内容没的说


这本书我非常喜欢,


上课要用的书,外国人写的比较不好懂,很少用


自己考研要用到的专业课资料,应该还不错,好好加油吧。


东西不错哦,就是快递有点慢。。


读了第三章,发现有几处错误,这本书的校对没有做好啊


书还不错,可惜找不到旧书买


不错,考研复试用的....^_^...


我去年买了个表 十天才到


这本书是教材书的质量很好没得说


非常专业的书.学习用


这本书对我帮助很大嗯


是龙书的本科教学版。


不错,质量不错,运的过程中没有损坏


昨天上午定的,今天中午就到了,卓越发货很快,书的内容不用多说了,感觉印刷还行。


不知道是我的汉语水平有问题还是翻译不给力,反正看起来就觉着云里雾里的,到网上找了本原版英文版的相互对照着看感觉还不错 呵呵


翻译有些地方不够流畅


相关图书