第1章
引论
1.2SPL语言的特点及实验安排
1.2.1SPL语言的特点
1.2.2SPL语言编译器的主要结构
1.2.3实验安排
1.3平台的选择和介绍
1.3.1LEX简介
1.3.2YACC简介
第2章
词法分析
2.2词法分析器的基本原理
2.2.1DFA的构造和实现
2.2.2词法分析的预处理
2.2.3实现词法分析器的注意要点
2.3词法分析器的实现
2.3.1SPL语言单词属性字
2.3.2SPL词法分析器的输入和输出
2.3.3SPL词法分析器的分析识别
第3章
语法分析
3.1语法分析的基本框架
3.1.1上下文无关文法
3.1.2语法分析过程
3.1.3语法分析过程中的数据结构
3.2语法分析的基本方法
3.2.1自顶向下的分析方法
3.2.2自底向上的分析方法
3.3语法分析的实现
3.3.1SPL语法定义
3.3.2SPL语法分析
第4章
符号表实现
4.1符号表的操作及数据结构
4.1.1符号表的操作
4.1.2符号表的数据结构
4.2基本原理和设计要点
4.2.1作用域规则
4.2.2设计要点
4.3SPL符号表的实现
4.3.1符号表的组织方式
4.3.2符号表的具体实现
第5章
错误处理
5.1错误处理基本原理
5.1.1错误的种类
5.1.2错误的诊察和报告
5.1.3错误处理技术
5.1.4错误处理实现中的要点
5.2错误处理的实现
5.2.1错误处理数据结构定义和相关函数
5.2.2词法错误处理
5.2.3语法错误
5.2.4语义错误
5.2.5限制重复报告错误
第6章
代码生成
6.1代码生成原理及主要数据结构
6.1.1技术概述
6.1.2主要数据结构
6.2代码生成的关键要点
6.2.1布尔表达式的代码生成
6.2.2条件语句的代码生成
6.2.3循环结构的代码生成
6.2.4程序调用的代码生成
6.3目标机器环境说明
6.3.1目标机器8086
6.3.2目标机器i386
6.4代码生成程序的实现
6.4.1定义与声明的翻译
6.4.2表达式的翻译
6.4.3语句和控制流的翻译
第7章
代码优化
7.2基本原理
7.2.1代码优化分类
7.2.2常量表达式优化
7.2.3公共表达式的优化
7.2.4循环优化
7.2.5优化实现的要点
7.3优化的实现
7.3.1常量合并的实现
7.3.2公共表达式节省的实现
第8章
SPL编译器完整实现
8.2编译器各部分接口
8.2.1词法分析
8.2.2语法分析
8.2.3语义分析
8.2.4#间代码生成
8.2.5代码优化
8.2.6目标代码生成
8.2.7错误处理
8.3语言的扩充和实现
8.3.1词法分析器的语言扩充
8.3.2语法分析器的语言扩充
8.3.3符号表的语言扩充
8.3.4树和DAG扩充
8.3.5目标代码生成的语言扩充
8.5编译器的编译和测试
8.5.1Linux环境下的编译和运行
8.5.2Windows环境下的编译和运行