编译器设计(第2版)
27推荐 收藏
20.3K阅读
图灵程序设计丛书

编译器设计(第2版)

Keith D.Cooper , Linda Torczon (作者) 郭旭 (译者)
上市销售
本书旨在介绍编译器构造法中的艺术和科学。书中深入分析现代编译器后端所用的算法和技术,重点讨论代码优化和代码生成,详细介绍了用几个编程语言编写的示例等。

出版信息

  • 书  名编译器设计(第2版)
  • 系列书名图灵程序设计丛书
  • 执行编辑关于本书的内容有任何问题,请联系 傅志红
  • 出版日期2012-12-24
  • 书  号978-7-115-30194-9
  • 定  价99.00 元
  • 页  数592
  • 开  本16开
  • 出版状态上市销售
  • 原书名Engineering a Compiler, 2E
  • 原书号978-0120884780

同系列书

  • HTTP权威指南

    David Gourley   Brian Totty   Marjorie Sayer   Sailu Reddy   Anshu Aggarwal   陈涓   赵振平   译

    本书是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何...

  • JavaScript高级程序设计(第3版)

    Nicholas C.Zakas   李松峰   曹力   译

    本书是JavaScript超级畅销书的新版。ECMAScript 5 和HTML5在标准之争中双双胜出,使大量...

  • 计算机科学的基础

    Al Aho   Jeff Ullman   傅尔也   译

    本书全面而详细地阐述了计算机科学的理论基础,从抽象概念的机械化到各种数据模型的建立,用算法、数据抽象等核心思想...

  • Java技术手册(第6版)

    Benjamin J Evans   David Flanagan   安道   译

    通过学习本书,你将能够: 掌握最新的语言细节,包括Java 8的变化 使用基本的Java句法学习面向对...

  • 机器学习实战

    Peter Harrington   李锐   李鹏   曲亚东   王斌   译

    机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或...

本书特色

深入剖析现代编译器运用的算法和技术
强调代码优化和代码生成
体现编译原理教学的最新理念

“编译器是一个内容丰富的研究领域,将整个计算机科学融汇在一个优雅的构造中。Cooper和Torczon的这本书很受欢迎,可以指导读者轻松学习编译器这种软件系统,新版增加了两位作者的一些设计经验,并明确指出了许多必须注意的细节,同时又不忘强调设计的大局观。对任何不熟悉编译器的人来说,本书都是不可多得的参考手册。”
——Michael D. Smith,哈佛大学文理学院院长,工程与应用科学John H. Finley Jr.讲席教授
“本书是构建现代优化编译器的最佳指南。作者汲取了编译器构建领域大量的经验,以帮助学生掌握整体设计思路,同时引导学生了解构建有效的优化编译器所必需的许多重要而微妙的细节。尤其值得一提的是,在我读过的书中,本书对静态单赋值形式的阐述最为清晰。”——Jeffery von Ronne,得克萨斯大学圣安东尼奥分校计算机科学系助理教授
“本书采用了更常规且一致的结构,还包含大量辅助教学的内容,如复习题、附加示例、术语解释和文本框说明等,这提升了它作为教科书的价值。本书还包括大量技术上的更新,包括非传统语言、实际编译器和编译器技术非传统用途方面的更多内容。优化方面的内容是第1版的特色,这一版中变得更为清晰易读。”
——Michael L. Sccot,罗彻斯特大学计算机科学系教授,Programming Language Pragmatics的作者
“Keith Cooper和Linda Torczon不仅很好地讲述了编译器的历史,也从实践者的角度阐述了如何开发编译器。书中包括了大量颇具实用价值的讨论和说明,既涉及理论,也涉及众多现存编译器的实例(如Lisp、FORTRAN等)。对入门和高级“分配”与“优化”概念的全面讨论,实际上涵盖了编译器设计的整个生命周期。对于计算机科学专业的学生以及编译器设计和开发人员来说,本书都是必备参考书。”
——David Orleans,诺瓦东南大学
“这本书写得实在是棒极了,内容翔实,辅以大量图表和示例说明,作为大学编译器课程的教科书和从业人员的参考书再合适不过了。代码优化是其重点。”——Reviews.com


1952年第一个编译器诞生,至今已经过去了半个多世纪,编译器的发展日臻成熟,关于编译器设计的著作也出版了不少,但既关注设计细节,又具备大局观的经典之作凤毛麟角,本书即是这样一本难得的佳作。
两位作者多年来一直奋战在研发和教学一线,理论和实践上的丰厚经验都凝结在了本书中。书中论述了一系列构建现代编译器必需的核心技术,分析了编译器设计者需要面对的诸多问题,阐释了解决这些问题所用到的一些知识点。第2版是时隔8年之后全新修订的版本,充分展现了编译器构造技术的最新进展。作者重写了书中全部示例,并特别改进了阐述顺序,使得章与章之间的内容更具连续性,也更适合专业人士将这本高校教材作为参考书。

目录

前言 阅读
第1章 编译概观 阅读
第2章 词法分析器
第3章 语法分析器
第4章 上下文相关分析
第5章 中间表示
第6章 过程抽象
第7章 代码形式
第8章 优化简介
第9章 数据流分析
第10章 标量优化
第11章 指令选择
第12章 指令调度
第13章 寄存器分配
附录A ILOC
附录B 数据结构
参考文献
索引

作者介绍

Keith D. Cooper
莱斯大学计算机科学系计算工程专业Doerr特聘教授,曾任该系系主任。Cooper博士的研究课题涵盖过程间数据流分析、标量指令优化、寄存器分配以及指令调度等方面。
Linda Torczon
莱斯大学计算机科学系高级研究员。Torczon的研究内容主要包括代码生成、过程间数据流分析和优化、编程环境。
郭旭
资深软件设计师。主要兴趣是复杂软件系统的分析和设计,目前从事高性能数据集成工具的研发。译有《深入Linux内核架构》、《C语言接口及实现》等书。

相关文章

  • 傅志红 9推荐

    好书妙评之《编译器设计》

    亚马逊书评: 1、非常好的编译器图书,5星 有用:6/6 作者:Dr. Bruce Watson(帕罗奥多,美国) 我是一名教授,曾经写过编译器,也买过很多相关图书,比如Aho、Ullman、Goos、Waite、Wirth等作者的书,是编译器图书的超级粉丝。很欣慰,…...

  • 英子 8推荐

    名家点评之《编译器设计(第2版)》

    Michael D. Smith,哈佛大学文理学院院长,工程与应用科学John H. Finley Jr.讲席教授 “编译器是一个内容丰富的研究领域,将整个计算机科学融汇在一个优雅的构造中。Cooper和Torczon的这本书很受欢迎,可以指导读者轻松学习编译器这种软件系统,新…...

  • 郭旭 8推荐

    《编译器设计》第2版文前(赞誉/题献/关于封面/作者简介/致谢)

    请注意:这里的版本可能与最终出版版本不一致。 对本书的赞誉 编译器是一个内容丰富的研究领域,将整个计算机科学融聚在一个优雅的构造中。Cooper和Torczon的这本书很受欢迎,可以指导读者轻松学习编译器这种软件系统,新版增加了一些陈述清楚的经验之谈,并明确指出了许多必…...

  • 紫凤 10推荐

    书好就要强烈推荐——选自豆瓣《编译器设计(第2版) 》书评

    我现在在看这本书的原版,基本快看完了。我觉得对于对编译有兴趣,特别是后端优化有兴趣的同学,这本书绝对是值得推荐的。 ![enter image description here][1] 编译技术是计算机科学中的显学,无数学者专家们的心血凝结成汗牛充栋的资料,而且这些资料也…...

  • 赵年峰 2推荐

    Antlr的+ * ?在yacc中都是什么样的模式?

    Antlr的+ * ?在yacc中都是什么样的模式? 因为正在完成的编译器 breed 需要把java项目转换到上面,所以需要对 Antlr的三种符号进行模式转换。 我们先看一下三种符号的作用 ( + ) 至少出现一次,至多不限制。 ( * ) 可能出现,也可能不出现。…...

  • 黄志斌 7推荐

    浅谈编译器优化

    回顾 在“图灵社区:检测 2 的幂”中,我给出了以下函数: int isPowerOf2a(long x) { if (x <= 0) return 0; while (x % 2 == 0) x /= 2; return x == 1; } 在二进制… ...

  • 黄志斌 4推荐

    gcc 编译器与 clang 编译器

    今天上午,卢涛在图灵社区发表了一篇文章:欧拉计划30题(加强版)。我把他的第二个程序稍做修改: 1: #include <stdio.h> 2: 3: static int a[1000… ...

  • skogkatt 24推荐

    编程语言和编译器书单(1)

    这两天微博上有人帖了一下十年前的编程语言和编译器书单,说实话不是很完整,也没有与时俱进。我今天把家里的相关书籍整理了一下,列个清单。 ![enter image description here][1] ![enter image description here][2] !…...

  • 申请翻译此书(刘彦博,Anders Liu)。翻译作品:
    《Visual Studio 2005技术大全》(http://product.dangdang.com/product.aspx?product_id=20078530&ref=search-1-pub)
    《Visual Studio技术大全》(http://product.dangdang.com/product.aspx?product_id=20675736&ref=search-1-pub)
    《高性能网站建设指南》(http://product.dangdang.com/product.aspx?product_id=20262641&ref=search-1-pub)
    《PHP基础教程(第3版)》(http://product.dangdang.com/product.aspx?product_id=20764798&ref=search-1-pub)
    Anders Liu  发表于 2011-10-21 11:31:21
    推荐
    • 本书译者已确定,是《深入Linux内核架构》、《C语言接口与实现》译者。谢谢你。

      傅志红  发表于 2011-11-18 10:22:07
  • 求电子版。。。
    刘炜  发表于 2014-08-05 17:02:52
    推荐
    • 这本书没有授权电子版。

      傅志红  发表于 2014-08-05 17:09:18
  • 这本书能不能引进影印版?
    dushen2  发表于 2016-03-09 17:00:43
    推荐
    • 暂无此计划。

      傅志红  发表于 2016-03-11 08:04:08
  • 这本书是不打算再印了吗?各网店都没货了……
    yuer520  发表于 2016-11-07 10:21:09
    推荐
    • 是啊,马上停止销售了。

      英子  发表于 2016-11-07 10:30:31
    • 啊,要绝版了啊??本来还打算大三的时候买来做教材。。。

      yjhmelody  发表于 2016-12-12 21:07:50
    • @英子 最近看到有货了,是又重新印刷了吗?

      seasmiles  发表于 2020-06-02 15:10:01
    • @seasmiles 哈哈哈哈,有需求就会重印,就怕没需求了。现在网店上有货。

      英子  发表于 2020-06-02 16:02:51
  • 有机会我也想试试
    yangsx  发表于 2011-10-21 16:55:42
    推荐
  • 这本书很厚,可以考虑几人合作翻译。——彼此多沟通就很重要。
    武卫东  发表于 2011-10-22 04:31:46
    推荐
  • 说实话,这书真的不太重视前端,前言里说得很明白;如果从事编译工作,你的第一份工作很可能是后端代码生成或优化方面的...

    这本书应该没有龙书那么经典,但它的优势在于比较现代化,作者有一位ACM院士,同时又不像aho、ullmann这些老古董那么罗嗦;对比两本书的目录,就可以看到这一点:eac这本书对词法/语法分析等内容,根本没有抠得向龙书那么细,但仔细看看内容,讲得却清晰明白。

    在看鲸书(高级编译器设计那本)之前,看看这本书应该是很有用的;应该没有鲸书那种深度,但看完这本书,做个编译器方面的工程师应该是不成问题了。
    郭旭  发表于 2012-01-04 23:32:19
    推荐
  • amazon上的几个评论,随手翻译了下
    ===========
    这真是一本超好的编译器教材。这也是能够买到的编译器书中最新的之一。

    首先,这是一本理论书籍。如果你将书名“编译器工程”理解为“编写/建造编译器”,你可能会很失望!因此,如果你是在寻找一本通过编写代码来学习的书籍,那么本书可能不合你的口味(但我在本书评最后一段,推荐了一些这方面的书)。本书与大多数其它理论书籍的差别在于,本书不是一本干巴巴的教材。它具有很好的布局,提供了足够的例子,所有主题彼此关联衔接。对于非英语母语的人来说,阅读此书是一种乐趣,因此英语母语的人阅读此书应当很快。

    本书读起来像是一本小说... 它并没有包含过多图、表等内容。但内容的组织也不算过于拥挤,一切内容都解释得颇有条理。

    你可以将本书当作一本编译器入门书来读。但我只向计算机科学专业的本科/研究生(像我本人)推荐这本书。你不需要数学方面的硕士学位才能理解教材的内容,所有的数学内容(如活动图)都解释得很好,但如果你有算法(设计)、伪代码等方面的一些背景知识(在本科期间获得的),可以把各种知识理解得更好。没有受到过正式的计算机科学教育的人,我推荐他们首先阅读一本实用的书籍(参见本评论最后),因为你可能会觉得这本书太理论化。

    本书专注于代码优化。根据作者(和我)的见解,编译器前端(词法分析/语法分析/等等)现在已经成为市售商品,而后端(代码生成)是不同编译器的差别所在。因此如果你在寻找一本编译器优化方面的入门书,这本书正好适合你!

    如果你在寻找更实用的书籍,我建议你阅读《Programming Language Processors in Java》(from Watt & Brown)。在该书中,你将学会用Java构建一个很好的栈式虚拟机,且支持“高级特性”如记录(即结构)、过程/函数、数组、等等。这本书是《编译器工程》的一本很好的伴侣书,可以向你提供一些很实用的知识。
    如果你在寻找一本语言设计书籍,可以去看看《 Programming Language Pragmatics》。我推荐的这两本书都值得上你花的价钱。
    ===========
    这本书是什么:对现代编译器中基本概念的伟大介绍!

    这本书不是什么:这不是为深陷商业编译器开发困境中的人提供的手册!

    我可以围绕这本书,设想出编译器构建方面的很好的一学期课程。 本书在简介之后,立即进入到编译的经典主题如词法分析、语法分析、语义分析。 这三章可以帮助初学者理解编译中多个处理层次,从字符层次,向上到实际的语法分析和表驱动技术、再到更高层的语义分析。 这里包含了对类型系统和类型推断的一部分简短讨论,不超过20页,对该主题的专门的完整讨论所需的篇幅要以整本书为单位计算! 这三章200页中有大量内容放到词法分析/语法分析上,这个问题基本上已经被自动化工具解决了(众所周知的lex和yacc),少量提及了因语言和应用的巨大差别而导致的更困难问题。

    第5章讨论中间表示,这是关键问题,中间表示是在分析、优化和代码生成期间用于表示程序的数据结构。 第6章标题为“过程抽象”。 它处理的内容远远超过其名字,包括过程活动记录(栈帧推广)、参数传递、栈管理、符号可见性和作用域、以及符号表结构的散碎问题,这些是重要的题材,但很难把它们都理解为“过程抽象”。 下一章讨论“代码形式”,其中包含了值表示、数组、字符串、控制流结构、和过程。 它在最后还用少量几页讨论了面向对象的语言,即使肤浅的探讨也几乎不够,更不要说能够讲透。 另外,由于没有其它适当的位置,我本来预期并行性和异常相关内容出现在这里,但本书似乎完全略去了这些主题。

    代码分析和优化出现在第8到第10章。其中透彻介绍了静态唯一形式表示法、这是现行编译器技术的一种主要成份,在此前中间表示的章节提起过。 这部分内容涵盖了很多基本知识,很忽略了数组方面所有重要的内容,而这正是高性能计算的驱动力。 第11-13章介绍了指令选择、调度、寄存器分配的基本知识。 尽管它提到了一些硬件效应,如超标量体系结构上的乱序执行,但讨论仍然比较贴近流行处理器的指令集。 因而,它省略了SIMD、VLIW、DSP和更多奇异的体系结构,而这些都需要良好的代码生成来支撑。 特定于编译器的支持库,例如为缺少硬件除法指令的处理器提供的软实现,应该出现在这里,但事实上很奇怪地没有出现。

    作者为初学者提供的介绍是足够的,尤其是那些仍然并不确定哈希表是什么的人(请参见附录B)。 本书介绍了许多基本的题材,但并没有对任何主题进行很深入的探讨。 学生在读完本书后,应该可以了解经典的编译器构建过程中大部分主要的问题。 但我不认为这本书在同类书籍中有什么竞争力,换句话说,讲得不透! 作为学术性介绍,我给这本书4星,但对于手头马上有问题要解决的人来说,确实缓不济急。
    ===========
    郭旭  发表于 2012-06-20 00:28:05
    推荐
  • 有没有译者的详细介绍?这个译者这么全面?翻译了OS内核的书又翻译编译器的书?
    zetCONCURRENCY  发表于 2012-12-09 18:15:52
    推荐
  • 等电子书。
    老赵  发表于 2012-12-17 10:48:14
    推荐
  • 期待电子书,求快点出电子书籍!
    sile  发表于 2013-01-02 17:44:14
    推荐
  • 请问课后习题答案哪里能看到?
    书的前言说 习题答案只提供给教师用户,那我们这些散户怎么办呀,买了书,做题的时候不知道对错?
    coderchen  发表于 2014-12-22 13:40:27
    推荐
  • 可惜了没有习题答案,可以不翻译的原版答案也可以,培生教育网站的拿不到,很麻烦,希望引进时注意附带的一些resource,不然个人根本就没可能,谢谢了
    myxs  发表于 2016-04-16 14:02:15
    推荐
  • 这么快就绝版了???各路网店都没货了……
    Rockiez  发表于 2016-12-21 19:30:24
    推荐
    • 网店有货

      英子  发表于 2020-06-02 16:01:43
  • 京东已购,可惜没有电子版。
    Pines_Cheng  发表于 2018-09-02 13:06:49
    推荐