【内容简介】
本书涵盖了现代微处理器编译器的设计和实现方面的所有高级主题。
本书首先介绍编译器的结构、符号表管理、中间代码结构、运行时支持等问题,探讨过程内的控制流分析、数据流分析、依赖关系分析和别名分析的各种方法,并介绍一系列的全局优化。接下来,讲述过程间的控制流分析、数据流分析和别名分析,以及程间优化和如何应用过程间信息来改善全局优化。然后,讨论有效利用层次存储系统的优化技术。最后,详细介绍4种商业化编译系统,以提供编译器结构、中间代码设计、优化策略和效果的专门例子。
本书适合作为高等院校计算机专业研究生和高年级本科生的教材,也适合需要了解高级编译器设计和构造有关问题的计算机专业人员参考。
本书特点
●为理解高级编译器设计的主要问题奠定了基础
●深入阐述优化问题
●用Sun的SPARC、IBM的POWER和PowerPC、DEC的Alpha以及Intel的Pentium和相关商业编译器作为案例,说明编译器结构、中间代码设计和各种优化方法
●给出大量定义清晰的关于代码生成、优化和其他问题的算法
●介绍由作者设计的以清晰、简洁的方式描述算法的语言ICAN (非形式编译算法表示)。
【作译者介绍】
本书提供作译者介绍
Steven S.Muchnick具有丰富而广博的经验。他曾经是计算机科学教授,后来他将自己的知识和经验应用于编译器设计,成为两种计算机体系结构(惠普的PA-RISC和Sun的SPARC)开发团队的核心成员,并担任这些系统的高级编译器设计与实现的领导人。他的研究和开发经验对于指导读者做出编译器设计决策极具价值。
.. << 查看详细
【目录信息】
出版者的话
专家指导委员会
译者序
序
前言
第1章 高级主题介绍 1
1.1 编译器结构回顾 1
1.2 基本问题中的高级论题 2
1.3 代码优化的重要性 4
1.4 优化编译器的结构 5
1.5 激进型优化编译器中各种优化的位置 7
1.6 本书各章的阅读流程 10
1.7 本书没有涉及的相关主题 10
1.8 例子中所用的目标机 11
1.9 数的表示与数据的大小 11
1.10 小结 11
1.11 进一步阅读 12
1.12 练习 12
<< 查看详细目录
【译者序】
本书被称为 “鲸书”,这一方面是因为它的英文原版书的封面是一张奇尔卡特毛毯的照片,而这张毛毯的图案是一条在水中潜游的鲸鱼;另一方面则是因为本书是有关编译技术的重要著作之一,被人们誉为与编译技术的经典代表作“龙书”(《Compilers: Principles,Techniques,and Tools》)齐名。
本书的作者Steven S.Muchnick在编译技术方面有着深厚的理论基础,又具有丰富而广博的经验。他以这样两方面的功力写成的这本书,对于从事编译器设计和实现的科技人员具有无法衡量的价值。本书的内容主要集中在编译器的后端以及编译优化实现方面,全面阐述了在编写一个真实的编译器时遇到的各种关键问题及解决方法,反映..
<< 查看译者序
【前言】
本书讨论单机编译器设计和实现技术领域的前沿问题,重点讨论编译优化技术(超过了本书60%的篇幅)。我们考虑了支持指令级并行的机器,但几乎完全忽略了大规模并行处理和向量处理的有关问题。
本书首先讨论编译器的结构、符号表管理(包括那些允许导入和导出作用域的语言)、中间代码结构、运行时支持问题(包括可以在运行时链接的共享对象),以及根据机器描述自动产生代码生成器等。之后,探讨过程内的(通常称为"全局的")控制流分析、数据流分析、依赖关系分析和别名分析的各种方法,并介绍一系列的全局优化,包括那些作用于程序不同成分(从单个表达式到整个过程)的优化。接下来本书讲述过程间的..
<< 查看前言
【序言】
从20世纪50年代中期以来,编译器设计就一直是计算机研究和开发中的活跃主题。第一个广泛使用的高级语言Fortran的成功在很大程度上归功于其早期高质量的编译器。John Backus和他在IBM的同事们认识到,除非编译器生成的代码与手工书写的机器代码的性能非常接近,否则程序员就不会放弃他们在使用汇编语言时所习惯采用的细节设计控制方法。Backus的小组创造了若干关键概念,这些概念构成了本书所研究问题的基础。这些概念包括循环优化中数组索引的处理和局部寄存器分配方法等。从那时起,研究人员和开发人员就一直不断用更有效的方法来改善和替代旧的方法。
既然编译器设计已有很长的历史,并且是一门相..
<< 查看序言