第1章 编译程序概论
1.1 编程语言与翻译系统
1.1.1程序设计语言
1.1.2 常用的高级语言
1.1.3 编译程序的概念
1.2 编译程序的工作过程
1.2.1 词法分析
1.2.2 语法分析
1.2.3 语义分析和中间代码产生
1.2.4 代码优化
1.2.5 目标代码生成
1. 3编译程序的逻辑结构
1.3.1 编译程序的总体框架
1.3.2 编译程序的表格管理
1.3.3 编译程序中的错误及出错处理
1.3.4 编译程序的分遍处理
1.3.5 编译前端与后端
1.4 编译技术应用
1.4.1 高级语言的实现
1.4.2 针对计算机体系结构的优化
1.4.3 新计算机体系结构的设计
1.4.4 程序翻译
1.4.5 提高软件开发效率的工具
1.5 本章小结
习题1
第2章 文法和语言
2.1 符号和符号串
2.2 文法和语言的形式定义
2.2.1 文法和上下文无关文法
2.2.2 推导和语法分析树
2.2.3 句型、句子和语言
2.3 Chomsky文法分类
2.4 文法和语言的二义性
2.5 文法的等价及其变换
2.6 本章小结-.
习题2
第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 正规式与正规集
3.4 有限自动机
3.4.1 确定有限自动机(DFA)
3.4.2 非确定有限自动机(NFA)
3.4.3 将NFA转换为DFA
3.4.4 确定有限自动机的化简
3.5正规文法、正规式和有限自动机的等价特性
3.5.1 正规文法与正规式的等价性
3.5.2 正规文法与有限自动机的等价性
3.5.3 正规式与有限自动机的等价性
3.6 词法分析器的自动构造工具--LEX
3.7 本章小结
习题3
第4章 自上而下语法分析方法
4.1 语法分析的任务和分析方法
4.2 自上而下分析的基本思想和面临的问题
4.2.1 自上而下分析的基本思想一
4.2.2 自上而下分析存在的困难和缺陷
4.3 左递归和回溯的消除
4.3.1 消除直接左递归
4.3.2 消除间接左递归
4.3.3 提取左公因子消除回溯
4.4 LL(1)分析法
4.4.1 FIRST集及其计算方法
4.4.2 FOLLOW集及其计算方法
4.4.3 LL(1)文法及LL(1)判定条件
4.4.4 LL(1)分析方法
4.5 不带回溯的自上而下分析方法
4.5.1 递归下降分析程序
4.5.2 预测分析程序
4.6 LL(1)分析中的错误处理
实验二 语法分析器设计之一--预测分析程序
4.7本章小结
习题4
第5章 自下而上语法分析方法
5.1 自下而上分析的一般思想和面临的问题
5.1.1 归约和"移进一归约"分析法
5.1.2 短语、句柄和最左素短语
5.1.3 规范归约与规范推导
5.1. 4 自下而上分析的核心问题和分析方法
5.1.5 语法分析栈的使用与语法树的表示
5.2 算符优先分析法
5.2.1 算符文法和算符优先文法
5.2.2 FIRSTVT集和LASTVT集
5.2.3 算符优先关系表及优先函数
5.2.4 算符优先分析算法及其特点
5.2.5 算符优先分析中的出错处理
实验三 语法分析器设计之二--算符优先分析程序
5.3 LR分析法
5.3.1 LR分析器的工作原理
5.3.2 LR(0)分析器
5.3.3 SLR(1)分析器
5.3.4.LR(1)分析器
5.3.5 LALR(1)分析器
5.3.6 二义文法在LR分析中的应用
5.3.7 LR分析中的出错处理
实验四 语法分析器设计之三--LR分析程序
5.4 语法分析器的自动产生工具--YACC
5.5本章小结
习题5
第6章 语法制导翻译和语义分析
6.1 属性文法与语法制导翻译
6.1.1 属性及属性文法
6.1.2 综合属性与继承属性
6.1.3 S-属性文法与L一属性文法
6.1.4 基于属性文法的语法制导翻译
6.2 语义分析和中间代码的产生
6.2.1 语义分析的任务
6.2.2 常见的中间代码形式
6.3 简单算术表达式及赋值语句的翻译
6.4 布尔表达式的翻译
6.4.1 布尔表达式的翻译方法
6.4.2 控制语句中布尔表达式的翻译
6.5 控制结构的翻译
6.5.1 if语句的翻译
6.5.2 while语句的翻译
6.5.3 for语句的翻译
6.5.4 goto语句的翻译
6.6 说明语句的翻译
6.6.1 简单说明语句的翻译
6.6.2 过程中的说明
6.7 数组的翻译
6.7.1 数组元素的地址计算
6.7.2 赋值语句中数组元素的翻译
6.8 过程调用语句的翻译
6.8.1 参数传递的方式
6.8.2 过程调用的处理
6.9 本章小结
习题6
第7章 符号表
7.1 符号表的作用与内容
7.1.1 符号表的作用
7.1. 2 符号表的内容与操作
7.2 符号表的组织与管理
7.2.1 符号表的组织结构
7.2.2 符号表的构造与查找
7.3 名字的作用范围
7.4 本章小结
习题7
第8章代码优化
8.1 优化概述
8.2 局部优化
8.2.1 基本块及流图
8.2.2 基本块的DAG表示及其应用
8.3 循环优化
8.3.1 代码外提
8.3.2 强度削弱
8.3.3 删除归纳变量
8.4 本章小结
习题8
第9章 目标代码生成
9.1 代码生成概述
9.2 目标机器模型
9.3 一种简单的代码生成算法
9.3.1 活跃信息与待用信息
9.3.2 寄存器和变量地址描述
9.3.3 简单代码生成算法
9.3.4 寄存器分配
9.4 本章小结
习题9
参考文献