本书是JavaScript经典图书的新版。第4版涵盖ECMAScript 2019,全面、深入地介绍了Java...
本书是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何...
本书是JavaScript超级畅销书的新版。ECMAScript 5 和HTML5在标准之争中双双胜出,使大量...
本书全面而详细地阐述了计算机科学的理论基础,从抽象概念的机械化到各种数据模型的建立,用算法、数据抽象等核心思想...
通过学习本书,你将能够: 掌握最新的语言细节,包括Java 8的变化 使用基本的Java句法学习面向对...
本书从一位虚拟机(VM)架构师的角度,以易于理解、层层深入的方式介绍了各种主题和算法,尤其是不同VM通用的主要...
本书面向所有对计算机科学感兴趣的读者,以浅显易懂的语言和简明扼要的形式介绍计算机科学领域的重要知识点,尽量少涉...
本书全面讲述了现代编译器的各个组成部分,包括词法分析、语法分析、抽象语法、语义检查、中间代码表示、指令选择、数...
本书将带领读者从头开始制作一门语言的编译器。笔者特意为本书设计了C♭语言,C♭可以说是C语言的子集,实现了包括...
这是一本非常有趣、激动人心的书,本书带领读者进入此前难以想象的领域——自己设计制作CPU,自己设计制作计算机。...
亚马逊书评: 1、非常好的编译器图书,5星 有用:6/6 作者:Dr. Bruce Watson(帕罗奥多,美国) 我是一名教授,曾经写过编译器,也买过很多相关图书,比如Aho、Ullman、Goos、Waite、Wirth等作者的书,是编译器图书的超级粉丝。很欣慰,…...
Michael D. Smith,哈佛大学文理学院院长,工程与应用科学John H. Finley Jr.讲席教授 “编译器是一个内容丰富的研究领域,将整个计算机科学融汇在一个优雅的构造中。Cooper和Torczon的这本书很受欢迎,可以指导读者轻松学习编译器这种软件系统,新…...
请注意:这里的版本可能与最终出版版本不一致。 对本书的赞誉 编译器是一个内容丰富的研究领域,将整个计算机科学融聚在一个优雅的构造中。Cooper和Torczon的这本书很受欢迎,可以指导读者轻松学习编译器这种软件系统,新版增加了一些陈述清楚的经验之谈,并明确指出了许多必…...
我现在在看这本书的原版,基本快看完了。我觉得对于对编译有兴趣,特别是后端优化有兴趣的同学,这本书绝对是值得推荐的。 ![enter image description here][1] 编译技术是计算机科学中的显学,无数学者专家们的心血凝结成汗牛充栋的资料,而且这些资料也…...
Antlr的+ * ?在yacc中都是什么样的模式? 因为正在完成的编译器 breed 需要把java项目转换到上面,所以需要对 Antlr的三种符号进行模式转换。 我们先看一下三种符号的作用 ( + ) 至少出现一次,至多不限制。 ( * ) 可能出现,也可能不出现。…...
回顾 在“图灵社区:检测 2 的幂”中,我给出了以下函数: int isPowerOf2a(long x) { if (x <= 0) return 0; while (x % 2 == 0) x /= 2; return x == 1; } 在二进制… ...
今天上午,卢涛在图灵社区发表了一篇文章:欧拉计划30题(加强版)。我把他的第二个程序稍做修改: 1: #include <stdio.h> 2: 3: static int a[1000… ...
这两天微博上有人帖了一下十年前的编程语言和编译器书单,说实话不是很完整,也没有与时俱进。我今天把家里的相关书籍整理了一下,列个清单。 ![enter image description here][1] ![enter image description here][2] !…...
《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)
这本书应该没有龙书那么经典,但它的优势在于比较现代化,作者有一位ACM院士,同时又不像aho、ullmann这些老古董那么罗嗦;对比两本书的目录,就可以看到这一点:eac这本书对词法/语法分析等内容,根本没有抠得向龙书那么细,但仔细看看内容,讲得却清晰明白。
在看鲸书(高级编译器设计那本)之前,看看这本书应该是很有用的;应该没有鲸书那种深度,但看完这本书,做个编译器方面的工程师应该是不成问题了。
===========
这真是一本超好的编译器教材。这也是能够买到的编译器书中最新的之一。
首先,这是一本理论书籍。如果你将书名“编译器工程”理解为“编写/建造编译器”,你可能会很失望!因此,如果你是在寻找一本通过编写代码来学习的书籍,那么本书可能不合你的口味(但我在本书评最后一段,推荐了一些这方面的书)。本书与大多数其它理论书籍的差别在于,本书不是一本干巴巴的教材。它具有很好的布局,提供了足够的例子,所有主题彼此关联衔接。对于非英语母语的人来说,阅读此书是一种乐趣,因此英语母语的人阅读此书应当很快。
本书读起来像是一本小说... 它并没有包含过多图、表等内容。但内容的组织也不算过于拥挤,一切内容都解释得颇有条理。
你可以将本书当作一本编译器入门书来读。但我只向计算机科学专业的本科/研究生(像我本人)推荐这本书。你不需要数学方面的硕士学位才能理解教材的内容,所有的数学内容(如活动图)都解释得很好,但如果你有算法(设计)、伪代码等方面的一些背景知识(在本科期间获得的),可以把各种知识理解得更好。没有受到过正式的计算机科学教育的人,我推荐他们首先阅读一本实用的书籍(参见本评论最后),因为你可能会觉得这本书太理论化。
本书专注于代码优化。根据作者(和我)的见解,编译器前端(词法分析/语法分析/等等)现在已经成为市售商品,而后端(代码生成)是不同编译器的差别所在。因此如果你在寻找一本编译器优化方面的入门书,这本书正好适合你!
如果你在寻找更实用的书籍,我建议你阅读《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星,但对于手头马上有问题要解决的人来说,确实缓不济急。
===========
书的前言说 习题答案只提供给教师用户,那我们这些散户怎么办呀,买了书,做题的时候不知道对错?