本书共分两篇,第一篇概论包括编译程序概述与程序(软件)研制的实践指南,第二篇实践篇包括文法及相关概念、词法分析、语法分析、语义分析和目标代码生成、目标代码优化。第一篇系统而概要地介绍了以C型语言编译系统作为开发平台进行界面设计、研制应用程序的操作步骤;第二篇中的实习题涵盖了编译程序构造的各个主要环节,以C语言为规范,给出了相关的数据结构、众多的C型伪代码程序,供读者参考。书中所配光盘内容是本书的附录,其中附录一给出了语义分析中语义子程序的设计;附录二给出了覆盖编译全过程的可执行样本程序,让读者深切感受从源程序字符序列到等价的目标代码的翻译全过程的感性体验;附录三与附录四给出了以VC++为开发平台开发的应用系统实例;附录五是以赋初值方式给出的各章实习题调试实例。
期望读者通过阅读本书,能了解C型语言研制应用程序的要点,汲取丰富的编程方法和技巧,对照操作,便可以轻松开发具有良好界面的应用程序(包括编译程序)。
本书可供计算机及相关专业作为编译原理课程的富有启发性的配套实践教材,同时也可作为计算机软件工作者、研究生以及广大计算机爱好者的参考用书。
样章试读
目录
- 第二版前言
第一版前言
第一篇 概论
第1章 编译程序概述
1.1 编译程序及其构造
1.2 编译程序构造实践的必要性
1.3 编译程序实现要点
1.4 本书阅读指南
第2章 实践指南
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 上机实习报告举例
第二篇 实践篇
第1章 文法及相关概念
1.1 基本概念
1.1.1 文法与句子
1.1.2 文法等价变换
1.1.3 句型分析
1.2 主要数据结构
1.3 实习题
实习题1.1 文法的输入输出
实习题1.2 推导的建立
实习题1.3 Chomsky文法类识别
实习题1.4 压缩文法的等价变换
实习题1.5 消去左递归的文法等价变换
实习题1.6 从推导建立语法分析树
实习题1.7 文法管理系统
第2章 词法分析
2.1 基本概念
2.2 主要数据结构
2.3 实习题
实习题2.1 状态转换图的生成
实习题2.2 运行状态转换图
实习题2.3 有穷状态自动机(FA)的构造
*实习题2.4 NFA的确定化
实习题2.5 运行FA
实习题2.6 词法分析程序的实现
实习题2.7 正则文法管理系统
第3章 语法分析——自顶向下分析技术
3.1 基本概念
3.1.1 自顶向下分析技术
3.1.2 递归下降分析技术
3.1.3 预测分析技术
3.2 主要数据结构
3.3 实习题
实习题3.1 文法之first集合与follow集合的计算
实习题3.2 递归下降识别程序的构造
实习题3.3 LL(1)文法的判定
实习题3.4 预测分析表的构造
实习题3.5 应用预测分析技术句型分析
*实习题3.6 自顶向下分析系统
第4章 语法分析——自底向上分析技术
4.1 基本概念
4.1.1 自底向上分析技术
4.1.2 算符优先分析技术
4.1.3 LR(k)分析技术
4.2 主要数据结构
4.3 实习题
实习题4.1 有穷字母表上关系传递闭包的计算(Warshall 算法)
实习题4.2 算符优先矩阵构造
实习题4.3 应用算符优先分析技术句型分析
实习题4.4 优先函数构造
*实习题4.5 SLR(1)分析表自动构造
*实习题4.6 应用LR(1)分析技术句型分析
实习题4.7 自底向上分析系统的设计与实现
第5章 语义分析和目标代码生成
5.1 基本概念
5.2 主要数据结构
5.3 实习题
实习题5.1 注释分析树生成
实习题5.2 基于自顶向下方式翻译方案的属性值计算
实习题5.3 基于自底向上方式翻译方案的属性值计算
实习题5.4 赋值语句目标代码生成
实习题5.5 条件语句目标代码生成
实习题5.6 while语句目标代码生成
实习题5.7 赋值语句四元式序列生成
实习题5.8 条件语句四元式序列生成
实习题5.9 赋值语句三元式序列生成
实习题5.10 从四元式序列生成目标代码
第6章 代码优化
6.1 基本概念
6.2 主要数据结构
6.3 实习题
实习题6.1 流图构造
实习题6.2 构造DAG
实习题6.3 从DAG还原成四元式序列
参考文献