正在加载图片...
前言 从本书的1986版出版到现在,编译器设计领域已经发生了很大的改变。随着程序设计语言 的发展,提出了新的编译问题。计算机体系结构提供了多种多样的资源,而编译器设计者必须能 够充分利用这些资源。最有意思的事情可能是,古老的代码优化技术已经在编译器之外找到了 新的应用。现在,有些工具利用这些技术来寻找软件中的缺陷,以及(最重要的是)寻找现有代 码中的安全漏洞。而且,很多“前端”技术一文法、正则表达式、语法分析器以及语法制导翻泽 器等 一仍然被广泛应用。 因此,本书先前的版本所体现的我们的价值观一直没有改变。我们知道,只有很少的读者将 会去构建甚至维护一个主流程序设计语言的编译器。但是,和编译器相关的模型、理论和算法可 以被应用到软件设计和开发中出现的各种各样的问题上。因此,我们会关注那些在设计一个语 言处理器时常常会碰到的问题,而不考虑具体的源语言和目标机器究竟是什么。 使用本书 要学完本书的全部或大部分内容至少需要两个学季(quarter),甚至两个学期(semester) 通常会在一门本科课程中讲授本书的前半部分内容;而本书的后半部分(强调代码优化)会在研 究生层面或另一门小范围的课程中讲授。下面是各章的概要介绍: 。第1章给出一些关于学习动机的资料,同时也将给出一些关于计算机体系结构和程序设 计语言原则的背景知识。 ·第2章会开发一个小型的编译器,并介绍很多重要概念。这些概念将在后面的各章中深 人介绍。这个编译器本身将在附录中给出。 ·第3章将讨论词法分析、正则表达式、有穷状态自动机和词法分析器的生成器工具。这 些内容是各种文本处理的基础。 。第4章将讨论主流的语法分析方法,包括自顶向下方法(递归下降法、山技术)和自底向 上方法(LR技术和它的变体)。 ·第5章将介绍语法制导定义和语法制导翻译的基本思想 ·第6章将使用第5章中的理论,并说明如何使用这些理论为一个典型的程序设计语言生 成中间代码。 ·第7章将讨论运行时刻环境,特别是运行时刻栈的管理和垃圾回收机制 。第8章将主要讨论目标代码生成技术。该章会讨论基本块的构造,从表达式和基本块生 成代码的方法,以及寄存架分配技术 。第9章将介绍代码优化技术,包括流图、数据流分析框架以及求解这些框架的选代算法。 美国大学的学制大致可以分为两种:9aer(学季)和c er(学期)。前者是把一年分为4个qu山世,每个gu证 :3个月,原则上是上3个quarter修一个9ua:的限:面后者则类似我国国内的寒特般制的大学学制,大极4个 月一个semester。 编辑注
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有