本书是在陈火旺、钱家骅、孙永强三位教授编写的《程序设计语言编译原理》的基础上,结合编译技术的最新研究成果和作者多年的教学经验编写而成的。\r\n 本书比较全面、系统地介绍了编译程序构造的一般原理和基本实现方法,内容包括词法分析、语法分析、属性文法与语法制导翻译、语义分析与中间代码产生、符号表与运行时存储空间组织、优化与目标代码生成、并行编译技术。与原教材相比,本书将编译技术的最新发展,例如属性文法、面向对象语言的编译技术、并行编译技术、编译程序自动构造工具等内容系统地融合到教材中;在语言背景方面,以C,Pascal替代原教材中的FORTRAN和Algol;并在一些重要的章节中增加了必要的例题,以帮助读者理解和自学。\r\n 本书可作为高等(理、工)院校计算机科学(或工程)专业的教材,或作为教师、研究生、高年级学生或软件工程技术人员的参考书。 \r\n\r\n\r\n
第一章 引论\r\n 1.1 什么叫编译程序\r\n 1.2 编译过程概述\r\n 1.3 编译程序的结构\r\n 1.4 编译程序与程序设计环境\r\n 1.5 编译程序的生成\r\n第二章 高级语言及其语法描述\r\n 2.1 程序语言的定义\r\n 2.2 高级语言的一般特性\r\n 2.3 程序语言的语法描述\r\n第三章 词法分析\r\n 3.1 对于词法分析器的要求\r\n 3.2 词法分析器的设计\r\n 3.3 正规表达式与有限自动机\r\n 3.4 词法分析器的自动产生\r\n第四章 语法分析——自上而下分析\r\n 4.1 语法分析器的功能\r\n 4.2 自上而下分析面临的问题\r\n 4.3 LL(1)分析法\r\n 4.4 递归下降分析程序构造\r\n 4.5 预测分析程序\r\n 4.6 LL(1)分析中的错误处理\r\n第五章 语法分析——自下而上分析\r\n 5.1 自下而上分析基本问题\r\n 5.2 算符优先分析\r\n 5.3 LR分析法\r\n 5.4 语法分析器的自动产生工具YACC\r\n第六章 属性文法和语法制导翻译\r\n 6.1 属性文法\r\n 6.2 基于属性文法的处理方法\r\n 6.3 S-属性文法的自下而上计算\r\n 6.4 L-属性文法和自顶向下翻译\r\n 6.5 自下而上计算继承属性\r\n第七章 语义分析和中间代码产生\r\n 7.1 中间语言\r\n 7.2 说明语句\r\n 7.3 赋值语句的翻译\r\n 7.4 布尔表达式的翻译\r\n 7.5 控制语句的翻译\r\n 7.6 过程调用的处理\r\n 7.7 类型检查\r\n第八章 符号表\r\n 8.1 符号表的组织与作用\r\n 8.2 整理与查找\r\n 8.3 名字的作用范围\r\n 8.4 符号表的内容\r\n第九章 运行时存储空间组织\r\n 9.1 目标程序运行时的活动\r\n 9.2 运行时存储器的划分\r\n 9.3 静态存储分配\r\n 9.4 简单的栈式存储分配\r\n 9.5 嵌套过程语言的栈式实现\r\n 9.6 堆式动态存储分配\r\n第十章 优化\r\n 10.1 概述\r\n 10.2 局部优化\r\n 10.3 循环优化\r\n *10.4 数据流分析\r\n第十一章 目标代码生成\r\n 11.1 基本问题\r\n 11.2 目标机器模型\r\n 11.3 一个简单的代码生成器\r\n 11.4 寄存器分配\r\n 11.5 DAG的目标代码\r\n 11.6 窥孔优化\r\n第十二章 并行编译基础\r\n 12.1 并行计算机及其编译系统\r\n 12.2 基本概念\r\n 12.3 依赖关系\r\n 12.4 依赖关系问题\r\n 12.5 依赖关系测试\r\n 12.6 循环的向量化与并行化\r\n 12.7 循环变换技术\r\n参考文献 \r\n \r\n \r\n
本教材系按电子工业部的《1996一2000年全国电子信息类专业教材编审出版规划》, 由全国高校计算机专业教学指导委员会编审. 推荐出版. 本教材由国防科技大学陈火旺院士担任主编, 主审侯文永教授. 赵雄芳教授.
本教材的参考学时数80学时, 其主要内容包括词法分析. 语法分析. 属性文法与语法制导翻译. 语义分析与中间代码产生. 符号表与运行时存储空间组织. 优化与目标代码生成. 并行编译技术. 本书将编译技术的最新发展, 例如属性文法. 面向对象语言的编译技术. 并行编译技术. 编译程序自动构造工具等内容系统地融合到教材中. 本书的主要例题和习题均以C. Pasccal为语言背景, 并在一些重要的章节中增加了必要的例题, 以帮助读者理解和自学. 使用本教材时应注意, 在学这门课之前, 学生必须预修计算引论(程序设计方法)和高级语言(PASCAL. C或C++), 并且最好具有数据结构和离散数学方面的基本知识.
本书是在陈火旺. 钱家骅. 孙永强三位教授1980年编写的《程序设计语言编译原理》的基础上, 结合编译技术的最新研究成果和作者多年的教学经验编写而成的. 本书由陈火旺院士确定内容的选取和组织, 由刘春林. 谭庆平. 赵克佳. 刘越具体执笔, 最后由陈火旺院士定稿. 刘春林编写第一. 二. 四. 五. 六. 七. 十章以及十一章部分内容, 谭庆平编写第三章, 刘越编写第八. 九章以及十一章部分内容, 赵克佳编写第十二章, 翟桂英负责全书文字及图表的录入工作. 侯文永教授和赵雄芳教授认真审阅了本书的全部初稿, 提出了很多宝贵的意见, 在此表示诚挚的感谢. 由于编者水平有限, 书中难免还存在一些缺点和错误, 殷切希望广大读者批评指正.
编 者