正在加载图片...
。第0章将讨论指令级优化。该章的重点是从小段指令代码中抽取并行性,并在那些可以 同时做多件事情的单处理器上调度这些指令。 。第11章将介绍大规模并行性的检测和利用。这里的重点是数值计算代码。这些代码具有 对多维数组进行遍历的紧致循环。 ·第12章将介绍过程间分析技术。它将讨论指针分析、别名和数据流分析。这些分析都考 虑了到达代码中某个给定点时的过程调用序列。 哥伦比亚大学、哈佛大学、斯坦福大学已经开设了讲授本书内容的课程。哥伦比亚大学定期 开设一门关于程序设计语言和醒译器的课程,使用了本书前8章的内容。该课程常年面向高年级 本科生/一年级研究生讲授,这门课程的亮点是 一个长达一个学期的课程实践项目。在该项目 中,学生分成小组,创建并实现一个他们自己设计的小型语言。学生创建的语言涉及多个应用领 域,包括量子计算、音乐合成、计算机图形学、游戏、矩阵运算和很多其他领域。在构建他们自 己的编译器时,学生们使用了很多种可以生成编译器组件的工具,比如ANTLR、Lx和Ya©;他 们还使用了第2章和第5章中讨论的语法制导翻译技术。后续的研究生课程的重点是本书第9 章到第12章的内容,着重强调适用于当代计算机(包括网络处理器和多处理器体系结构)的代码 生成和优化技术。 断相福大学开设了一门历时一个学季的人门梁程,大致涵盖了本书第】章到第8章的内容 同时还会简介本书第9章中全局代码优化的相关内容。第二门编译器课程包括本书第9章到第 12章的内容,另外还包括第7章中更为深人的有关垃圾收集的内容。学生使用一个该校开发的 基于Java的系统Joeg来实现数据流分析算法。 预备知识 学习本书的读者应该拥有一些“计算机科学的综合知识”,至少学过两门程序设计课程,以 及数据结构和离数学的课程。具备多种程序设计语言的知识对学习本书会有所帮助 练习 本书包含内容广泛的练习,几乎每一节都有一些练习。我们用感叹号来表示较难的练习或 练习中的一部分。难度最大的练习有两个感叹号。 万维网上的支持 在本书的主页(htp:/dragonbook.stanford.edu)e上可以找到本书已知错误的勘误表以及一 些支持性资料。我们希望将我们讲授的每一门与编译器相关的课程的可用讲义(包括家庭作 业、答案和练习等)都提供出来。我们也计划公布由一些重要编译器的作者撰写的关于这些编 译器的描述。 致谢 本书封面由Strange Tonic Productions的S.D.Ullman设计。 Jon Bentley针对本书的初稿中的多章内容与我们进行了广泛深人的讨论。我们收到了来 自下列人员的有帮助的评价和勘误:Domenico Bianculli,Peter Bosch、Marcio Buss、Marc Eaddy、 读者可以从hp:/idb.sand.ed~namn/ema.hm找到本书的粉误表,并可以从p:/n d.edu/~ullman/dragon.iml处找到本书的一些支持资料
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有