本书是在陈火旺、钱家骅、孙永强三位教授编写的《程序设计语言编译原理》的基础上,结合编译技术的最新研究成果和作者多年的教学经验编写而成的。 本书比较全面、系统地介绍了编译程序构造的一般原理和基本实现方法,内容包括词法分析、语法分析、属性文法与语法制导翻译、语义分析与中间代码产生、符号表与运行时存储空间组织、优化与目标代码生成、并行编译技术。与原教材相比,本书将编译技术的最新发展,例如属性文法、面向对象语言的编译技术、并行编译技术、编译程序自动构造工具等内容系统地融合到教材中;在语言背景方面,以C,Pascal替代原教材中的FORTRAN和Algol;并在一些重要的章节中增加了必要的例题,以帮助读者理解和自学。
本书可作为高等(理、工)院校计算机科学(或工程)专业的教材,或作为教师、研究生、高年级学生或软件工程技术人员的参考书。
目录
- 第一章 引论
- 1.1 什么叫编译程序
- 1.2 编译过程概述
- 1.3 编译程序的结构
- 1.4 编译程序与程序设计环境
- 1.5 编译程序的生成
- 第二章 高级语言及其语法描述
- 2.1 程序语言的定义
- 2.2 高级语言的一般特性
- 2.3 程序语言的语法描述
- 第三章 词法分析
- 3.1 对于词法分析器的要求
- 3.2 词法分析器的设计
- 3.3 正规表达式与有限自动机
- 3.4 词法分析器的自动产生
- 第四章 语法分析——自上而下分析
- 4.1 语法分析器的功能
- 4.2 自上而下分析面临的问题
- 4.3 LL(1)分析法
- 4.4 递归下降分析程序构造
- 4.5 预测分析程序
- 4.6 LL(1)分析中的错误处理
- 第五章 语法分析——自下而上分析
- 5.1 自下而上分析基本问题
- 5.2 算符优先分析
- 5.3 LR分析法
- 5.4 语法分析器的自动产生工具YACC
- 第六章 属性文法和语法制导翻译
- 6.1 属性文法
- 6.2 基于属性文法的处理方法
- 6.3 S-属性文法的自下而上计算
- 6.4 L-属性文法和自顶向下翻译
- 6.5 自下而上计算继承属性
- 第七章 语义分析和中间代码产生
- 7.1 中间语言
- 7.2 说明语句
- 7.3 赋值语句的翻译
- 7.4 布尔表达式的翻译
- 7.5 控制语句的翻译
- 7.6 过程调用的处理
- 7.7 类型检查
- 第八章 符号表
- 8.1 符号表的组织与作用
- 8.2 整理与查找
- 8.3 名字的作用范围
- 8.4 符号表的内容
- 第九章 运行时存储空间组织
- 9.1 目标程序运行时的活动
- 9.2 运行时存储器的划分
- 9.3 静态存储分配
- 9.4 简单的栈式存储分配
- 9.5 嵌套过程语言的栈式实现
- 9.6 堆式动态存储分配
- 第十章 优化
- 10.1 概述
- 10.2 局部优化
- 10.3 循环优化
- *10.4 数据流分析
- 第十一章 目标代码生成
- 11.1 基本问题
- 11.2 目标机器模型
- 11.3 一个简单的代码生成器
- 11.4 寄存器分配
- 11.5DAG的目标代码
- 11.6 窥孔优化
- 第十二章 并行编译基础
- 12.1 并行计算机及其编译系统
- 12.2 基本概念
- 12.3 依赖关系
- 12.4 依赖关系问题
- 12.5 依赖关系测试
- 12.6 循环的向量化与并行化
- 12.7 循环变换技术参考文献