图书前言

    本书介绍程序设计语言编译程序构造的一般原理、基本设计方法、主要实现技术和一些自动构造工具。为计算机科学和技术专业的本科生提供教材。

    尽管"编译程序"是特指将高级程序设计语言翻译成低级语言的软件,但编译程序构造的基本原理和技术也广泛应用于一般软件的设计和实现,因此本书也是从事系统软件和软件工具研究及开发者的参考书。

    几年来的教学实践证明,本教材第一版的内容和架构都不错,受到广大读者的欢迎,且被一些院校选用,目前已出版20余万册。随着嵌入式系统的迅速发展和高性能体系结构的推陈出新,对支持多源语言多目标机的编译技术的研究显得尤为重要,同时,面向对象技术的兴起与广泛使用也对传统的编译技术提出了新的挑战和要求,这些发展变化应在教材中有所体现。本书在第一版的基础上,修改和添加了相应章节。首先从剖析一个简单的编译程序(PL/o)人手,对编译程序设计的基本理论,如有穷自动机、上下文无关文法等给予必要的介绍;对于广泛使用的语法分析方法和语义分析技术,如递归子程序法、算符优先分析、LR分析及语法制导翻译等进行了详细的讲解;对编译程序的结构及其各部分功能、实现方法以及整体的设计考虑等给予了描述;还介绍了编译程序的构造技术,包括可重定向编译器的开发方法;此外,讨论了面向对象语言的编译技术以及利用面向对象方法构造编译程序的基本思想。并在附录中给出了PL/o的编译程序文本(包括C和Pascal两种语言文本)。

    本书的第1章、第3章、第4章、第8章、第10章和第11章由张素琴编写,第2章、第5章至第7章由吕映之编写,第9章、第14章和第15章由蒋维杜编写,第12章和第13章由戴桂兰编写。另外,感谢蔡锐提供了PL/0编译程序的C版本。

    书中若有不妥之处,请读者批评指正。