内容简介
第1章 引言
1.1程序的翻译及运行
1.2编译过程概述
1.3编译程序的结构框图
1.4编译程序的开发
1.4.1编译程序的开发步骤
1.4.2编译程序的开发技术
1.4.3编译程序的自动生成
习题1
第2章 形式语言理论基础
2.1形式语言的基本概念
2.1.1符号和符号串
2.1.2符号串的运算
2.2文法和语言的形式定义
2.3语法树和二义性
2.3.1语法树和推导
2.3.2文法二义性
2.4文法的实用限制
2.4.1有害规则
2.4.2多余规则
2.4.3文法的实用限制
2.4.4文法的等价变换
2.4.5扩充的BNF表示法
2.5文法和语言的Chomsky分类
2.5.1 0型文法与0型语言(对应图灵机)
2.5.2 1型文法与1型语言(对应线性界限自动机)
2.5.3 2型文法与2型语言(对应下推自动机)
2.5.4 3型文法与3型语言(对应有限自动机)
2.5.5四类文法的关系
习题2
第3章 自动机理论基础
3.1有限自动机的基本概念
3.1.1有限自动机的定义及表示法
3.1.2有限自动机的机器模型
3.1.3确定有限自动机(DFA)
3.1.4有限自动机在计算机内的示
3.1.5不确定有限自动机(NFA)
3.1.6由NFA到DFA的等价转换
3.2确定有限自动机DFA的化简
3.2.1等价状态和无关状态
3.2.2自动机的化简
3.3正则表达式形式定义
3.4下推自动机PDA
3.4.1下推自动机的机器模型
3.4.2 PDA的形式定义
习题3
第4章 词法分析
4.1词法分析概述
4.1.1词法分析的功能
4.1.2词法分析的两种处理结构
4.1.3单词符号的种类
4.1.4词法分析程序的输出形式
4.2词法分析程序的设计与实现
4.2.1词法分析程序流程图
4.2.2读单词
4.2.3读无符号数
4.2.4读标识符
4.3词法分析程序的自动生成
4.3.1基本思想
4.3.2 LEX源程序结构
4.3.3 LEX编译程序工作过程
4.3.4 LEX的实现
4.3.5 LEX的使用方式
习题4
第5章 语法分析——自顶向下分析方法
5.1自顶向下分析技术
5.2不确定的自顶向下分析思想
5.2.1三种终结符号集
5.2.2自顶向下分析过程中存在的问题及解决办法
5.3确定的自顶向下分析思想
5.4 LL (K)分析方法
5.4.1 LL (1)分析思想
5.4.2 LL (1)分析方法的逻辑结构
5.4.3 LL (1)分析方法
5.5递归下降分析法
5.5.1递归下降分析法的实现思想
5.5.2递归子程序及其性质
5.5.3递归下降分析法
习题5
第6章 语法分析——自底向上分析方法
6.1自底向上语法分析技术
6.1.1自底向上语法分析思想
6.1.2自底向上分析难点
6.2自底向上优先分析方法
6.2.1简单优先分析方法
6.2.2算符优先分析方法
6.3 LR (K)分析方法
6.3.1 LR分析思想及逻辑结构
6.3.2 LR (0)分析方法
6.3.3 SLR (1)分析方法
6.3.4 LR (1)分析方法
6.3.5 LALR(1)分析方法
习题6
第7章 语义分析及中间代码生成
7.1基本概念
7.1.1语义分析的概念
7.1.2属性文法技术
7.2几种常见的中间语言
7.2.1抽象语法树
7.2.2逆波兰表示
7.2.3四元式
7.2.4三元式
7.3表达式的翻译
7.3.1算术表达式的翻译
7.3.2布尔表达式的翻译
7.4语句的语法制导翻译
7.4.1说明语句的翻译
7.4.2赋值语句的翻译
7.4.3控制语句的翻译
习题7
第8章 代码优化
8.1代码优化的基本概念
8.1.1代码优化的定义
8.1.2代码优化的分类
8.1.3优化技术简介
8.2局部优化
8.2.1基本块的划分
8.2.2基本块的DAG表示
8.2.3基本块优化的实现
8.3循环优化
8.3.1循环的查找
8.3.2循环优化的实现
习题8
第9章 目标代码的生成
9.1目标代码生成程序中的有关问题
9.1.1目标代码生成程序的输入、输出
9.1.2目标代码
9.1.3寄存器分配
9.1.4运行时的存储管理
9.2一个计算机模型——虚拟机
9.2.1虚拟机
9.2.2虚拟机的汇编指令
9.3从中间代码生成目标代码
9.3.1从逆波兰表示生成目标代码
9.3.2从四元式序列生成目标代码
习题9
第10章 符号表
10.1符号表的组织与内容
10.2符号表的结构与存放
10.2.1线性符号表
10.2.2有序符号表
10.2.3散列符号表
10.2.4栈式符号表
10.3符号表的管理
10.3.1符号表的建立
10.3.2符号表的查填
习题10
第11章 目标程序运行时的存储组织与分配
11.1程序运行时的存储组织
11.2静态存储分配
11.3栈式动态存储分配
11.3.1简单的栈式存储分配
11.3.2嵌套过程语言的栈式存储分配
11.4堆式动态存储分配
11.5过程调用与返回
11.6参数传递机制
习题11
第12章 出错处理
12.1引言
12.1.1错误存在的必然性
12.1.2错误的种类
12.1.3错误复原
12.2校正词法错误
12.2.1词法错误的种类
12.2.2词法错误的校正
12.3校正语法错误
12.3.1语法错误的复原
12.3.2语法错误的校正
12.4校正语义错误
12.4.1语义错误的种类
12.4.2语义错误检查措施
习题12
第13章 编译程序自动生成工具简介
13.1引言
13.1.1编译程序自动生成工具概述
13.1.2编译程序自动生成工具的种类及常用工具简介
13.2词法分析自动生成工具
13.2.1 LEX系列词法分析自动生成工具简介
13.2.2其他词法分析自动生成工具简介
13.3语法分析自动生成工具
13.3.1 YACC系列语法分析自动生成工具简介
13.3.2其他语法分析自动生成工具简介
习题13
第14章 面向对象语言的编译
14.1概述
14.1.1面向对象语言的基本特征
14.1.2类和成员的属性构造
14.1.3面向对象编译程序的特点
14.2面向对象语言的编译
14.2.1单一继承
14.2.2多重继承
14.2.3多态性
14.2.4动态绑定
14.2.5接口类型
14.3面向对象的动态存储分配
14.3.1对象的存储区管理方式
14.3.2静态模型和栈式模型废弃单元的回收
14.3.3堆式模型废弃单元的回收
习题14
第15章 并行编译技术
15.1并行计算机及其编译系统简介
15.1.1并行计算相关技术简介
15.1.2并行编译系统的分类及结构
15.2并行程序设计模型
15.2.1并行体系结构分类及并行程序设计
15.2.2并行程序设计模型
15.3并行编译系统的构造
15.3.1并行编译系统的构造简介
15.3.2程序分析
15.3.3程序优化
15.3.4并行代码生成
15.4自动并行化技术目前研究现状
习题15
参考文献