程序设计语言编译原理(第3版)

程序设计语言编译原理(第3版)
作 者: 陈火旺
出版社: 国防工业出版社
丛编项: 高等学校电子信息类规划教材
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 高级程序语言设计
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《程序设计语言编译原理(第3版)》作者简介

内容简介

内容简介本书是在陈火旺屈家华、孙永强三位教授编写的《程序设计语言编译原理》的基础上,结合编译技术的最新研究成果和作者多年的教学经验编写而成的。本书比较全面、系统地介绍了编译程序构造的一般原理和基本实现方法,内容包括词法分析、语法分析、属性文法与语法制导翻译、语义分析与中间代码产生、符号表与运行时存储空间组织、优化与目标代码生成、并行编译技术。与原教材相比,本书将编译技术的最新发展,例如属性文法、面向对象语言的编译技术、并行编译技术、编译程序自动构造工具等内容系统地融合到教材中;在语言背景方面,以C,PaSCal替代原教材中的FORTRAN和Algol;并在一些重要的章节中增加了必要的例题,以帮助读者理解和自学。本书可作为高等(理、工)院校计算机科学(或工程)专业的教材,或作为教师、研究生、高年级学生或软件工程技术人员的参考书。

图书目录

第一章 引 论

1. 1 什么叫编译程序

1. 2 编译过程概述

1. 3 编译程序的结构

1. 3. 1 编译程序总框

1. 3. 2 表格与表格管理

1. 3. 3 出错处理

1. 3. 4 遍

1. 3. 5 编译前端与后端

1. 4 编译程序与程序设计环境

1. 5 编译程序的生成

第二章 高级语言及其语法描述

2. 1 程序语言的定义

2. 1. 1 语 法

2. 1. 2 语 义

2. 2 高级语言的一般特性

2. 2. 1 高级语言的分类

2. 2. 2 程序结构

2. 2. 3 数据类型与操作

2. 2. 4 语句与控制结构

2. 3 程序语言的语法描述

2. 3. 1 上下文无关文法

2. 3. 2 语法分析树与二义性

2. 3. 3 形式语言鸟瞰

练 习

第三章 词法分析

3. 1 对于词法分析器的要求

3. 1. 1 词法分析器的功能和输出形式

3. 1. 2 词法分析器作为一个独立子程序

3. 2 词法分析器的设计

3. 2. 1 输入. 预处理

3. 2. 2 单词符号的识别:超前搜索

3. 2. 3 状态转换图

3. 2. 4 状态转换图的实现

3. 3 正规表达式与有限自动机

3. 3. 1 正规式与正规集

3. 3. 2 确定有限自动机(DFA)

3. 3. 3 非确定有限自动机(NFA)

3. 3. 4 正规文法与有限自动机的等价性

3. 3. 5 正规式与有限自动机的等价性

3. 3. 6 确定有限自动机的化简

3. 4 词法分析器的自动产生

3. 4. 1 语言LEX的一般描述

3. 4. 2 超前搜索

3. 4. 3 LEX的实现

练 习

第四章 语法分析--自上而下分析

4. 1 语法分析器的功能

4. 2 自上而下分析面临的问题

4. 3 LL(1)分析法

4. 3. 1 左递归的消除

4. 3. 2 消除回溯. 提左因子

4. 3. 3 LL(1)分析条件

4. 4 递归下降分析程序构造

4. 5 预测分析程序

4. 5. 1 预测分析程序工作过程

4. 5. 2 预测分析表的构造

4. 6 LL(1)分析中的错误处理

练 习

第五章 语法分析--自下而上分析

5. 1 自下而上分析基本问题

5. 1. 1 归约

5. 1. 2 规范归约简述

5. 1. 3 符号栈的使用与语法树的表示

5. 2 算符优先分析

5. 2. I 算符优先文法及优先表构造

5. 2. 2 算符优先分析算法

5. 2. 3 优先函数

5. 2. 4 算符优先分析中的出错处理

5. 3 LR分析法

5. 3. 1 顺分析器

5. 3. 2 LR(0)项目集族和LR(0)分析表的构造

5. 3. 3 SLR分析表的构造

5. 3. 4 规范LR分析表的构造

5. 3. 5 LALR分析表的构造

5. 3. 6 二义文法的应用

5. 3. 7 LR分析中的出错处理

5. 4 语法分析器的自动产生工具YACC

练 习

第六章 属性文法和语法制导翻译

6. 1 属性文法

6. 2 基于属性文法的处理方法

6. 2. 1 依赖图

6. 2. 2 树遍历的属性计算方法

6. 2. 3 一遍扫描的处理方法

6. 2. 4 抽象语法树

6. 3 S-属性文法的自下而上计算

6. 4 L-属性文法和自顶向下翻译

6. 4. 1 翻译模式

6. 4. 2 自顶向下翻译

6. 4. 3 递归下降翻译器的设计

6. 5 自下而上计算继承属性

6. 5. 1 从翻译模式中去掉嵌入在产生式中间的动作

6. 5. 2 分析栈中的继承属性

6. 5. 3 模拟继承属性的计算

6. 5. 4 用综合属性代替继承属性

练 习

第七章 语义分析和中间代码产生

7. 1 中间语言

7. 1. 1 后缀式

7. 1. 2 图表示法

7. 1. 3 三地址代码

7. 2 说明语句

7. 2. 1 过程中的说明语句

7. 2. 2 保留作用域信息

7. 2. 3 记录中的域名

7. 3 赋值语句的翻译

7. 3. 1 简单算术表达式及赋值语句

7. 3. 2 数组元素的引用

7. 3. 3 记录中域的引用

7. 4 布尔表达式的翻译

7. 4. 1 数值表示法

7. 4. 2 作为条件控制的布尔式翻译

7. 5 控制语句的翻译

7. 5. 1 控制流语句

7. 5. 2 标号与goto语句

7. 5. 3 CASE语句的翻译

7. 6 过程调用的处理

7. 7 类型检查

7. 7. 1 类型系统

7. 7. 2 类型检查器的规格说明

7. 7. 3 函数和运算符的重载

7. 7. 4 多态函数

练 习

第八章 符号表

8. 1 符号表的组织与作用

8. 1. 1 符号表的作用

8. 1. 2 符号表的组织方式

8. 2 整理与查找

8. 2. 1 线性表

8. 2. 2 对折查找与二叉树

8. 2. 3 杂凑技术

8. 3 名字的作用范围

8. 3. 1 则佃州的符号表组织

8. 3. 2 Pascal的符号表组织

8. 4 符号表的内容

练 习

第九章 运行时存储空间组织

9. 1 目标程序运行时的活动

9. 1. 1 过程的活动

9. 1. 2 参数传递

9. 2 运行时存储器的划分

9. 2. 1 运行时存储器的划分

9. 2. 2 活动记录

9. 2. 3 存储分配策略

9. 3 静态存储分配

9. 3. 1 数据区

*9. 3. 2 公用语句的处理

*9. 3. 3 等价语句的处理

*9. 3. 4 地址分配

9. 3. 5 临时变量的地址分配

9. 4 简单的栈式存储分配

9. 4. 1 C的活动记录

9. 4. 2 C的过程调用. 过程进入. 数组空间分配和过程返回

9. 5 嵌套过程语言的栈式实现

9. 5. 1 非局部名字的访问的实现

9. 5. 2 参数传递的实现

9. 6 堆式动态存储分配

9. 6. 1 堆式动态存储分配的实现

9. 6. 2 隐式存储回收

练 习

第十章 优化

10. 1 概 述

10. 2 局部优化

10. 2. 1 基本块及流图

10. 2. 2 基本块的DAG表示及其应用

10. 3 循环优化

10. 3. 1 代码外提

10. 3. 2 强度削弱

10. 3. 3 删除归纳变量

*10. 4 数据流分析

10. 4. 1 任意路径数据流分析

10. 4. 2 全路径数据流分析

10. 4. 3 数据流问题的分类

10. 4. 4 其它主要的数据流问题

10. 4. 5 利用数据流信息进行全局优化

练 习

第十一章 目标代码生成

11. 1 基本问题

11. 2 目标机器模型

11. 3 一个简单的代码生成器

11. 3. 1 待用信息

11. 3. 2 寄存器描述和地址描述

11. 3. 3 代码生成算法

11. 4 寄存器分配

11. 5 DAG的目标代码

11. 6 窥孔优化

练 习

第十二章 并行编译基础

12. 1 并行计算机及其编译系统

12. 1. 1 向量计算机

12. 1. 2 共享存储器多处理机

12. 1. 3 分布存储器大规模并行计算机

12. 1. 4 并行编译系统的结构

12. 2 基本概念

12. 2. 1 向量与向量的次序

12. 2. 2 循环模型与索引空间

12. 2. 3 输入与输出集合

12. 2. 4 语句的执行顺序

12. 3 依赖关系

12. 3. 1 依赖关系定义

12. 3. 2 语句依赖图

12. 3. 3 依赖距离. 依赖方向与依赖层次

12. 4 依赖关系问题

12. 5 依赖关系测试

12. 6 循环的向量化与并行化

12. 7 循环变换技术

练 习

参考文献