本书包括两大部分。第一部分是基本内容,知识精要,练习题、考研题及详解。第二部分是清华大学出版社出版的《编译原理(第2版)》习题全解。
第一部分共分10章。第1章概述主要介绍了解释程序和编译程序的原理及区别;第2章主要是对文法、语言的形式定义及编译过程中一些基本概念的介绍;第3章包括词法分析的基本方法和有穷自动机;第4章包括自顶向下语法分析的基本知识及具体方法;第5章为自底向上语法分析的各种方法;第6章介绍了语法制导翻译和中间代码生成;第7章介绍了符号表的相关知识;第8章总结了编译程序为源程序在运行阶段的存储组织和分配所做的工作;第9章介绍了代码优化;第10章为代码生成的有关内容。第二部分特意给出了该书第2版各章习题的详细解答,以供读者参考。
本书内容全面,习题类型多样,可适应不同层次读者的需要,不仅可以作为计算机专业学生编译原理课程的参考书,也适合作为报考计算机相关专业研究生人员的复习指导书和任课教师的教辅用书。
本书是编译原理/方法课程的简明教程和考研、学习、教学辅导用书。内容涉及编译程序的相关概念、文法和形式语言、词法分析和有穷自动机、自顶向下语法分析、自底向上语法分析、语法制导翻译和中间代码、符号表、运行阶段的存储组织与分配、代码优化、代码生成、编译程序的构造、PL/O编译程序的实现等方面。
本书内容由两大部分组成。第一部分包括基本内容,知识精要,练习题、考研题及详解。第一部分中,每章均由基本内容、知识要点、练习题及参考答案解析、考研题及参考答案解析四部分组成。其中,基本内容包括本章的有关概念、方法和原理;知识要点主要是本章的重点和难点;练习题包括填空、判断、选择和问答题四种题型;考研题是部分高校、科研院所硕士研究生入学考试题目;练习题和考研题的参考答案解析部分给出了每一道题目的解答过程和参考答案。第二部分分章逐题给出了清华大学《编译原理》教材(第2版)所有习题的详细解答过程。
本书内容全面,习题类型多样,解答细致,提示或总结及时,可适应不同层次读者的需要,可以作为计算机专业本科生编译原理课程的学习参考书和任课教师的教辅用书,也可以作为报考计算机相关专业研究生的学生的复习指导书。
第一部分 基本内容,知识精要练习题、考研题及详解
第1章 概述
1.1 基本内容
1.1.1 翻译程序
1.1.2 解释程序和编译程序
1.1.3 编译过程概述
1.1.4 编译阶段的组合
1.1.5 编译程序的书写语言与T型图
1.1.6 编译程序的自展与交叉编译技术
1.2 知识要点
1.3 练习题及参考答案解析
1.3.1 练习题
1.3.2 参考答案解析
1.4 考研题及参考答案解析
第2章 文法和形式语言
2.1 基本内容
2.1.1 语法规则描述方法
2.1.2 符号和符号串
2.1.3 文法
2.1.4 语言
2.1.5 相关概念
2.1.6 有关文法的一些说明
2.1.7 语法分析初步
2.2 知识要点
2.3 练习题及参考答案解析
2.3.1 练习题
2.3.2 参考答案解析
2.4 考研题及参考答案解析
第3章 词法分析和有穷自动机
3.1 基本内容
3.1.1 词法分析程序
3.1.2 状态转换图
3.1.3 正则文法、正则式和正则集
3.1.4 有穷自动机
3.1.5 正则式和有穷自动机的等价性
3.1.6 正则文法和有穷自动机间的转换
3.1.7 词法分析程序的自动生成
3.2 知识要点
3.3 练习题及参考答案解析
3.3.1 练习题
3.3.2 参考答案解析
3.4 考研题及参考答案解析
第4章 自顶向下语法分析
4.1 基本内容
4.1.1 自顶向下语法分析方法
4.1.2 FIREL集合、FOROW集合和SELECT集合
4.1.3 递归子程序法
4.1.4 LL(1)分析法
4.1.5 带回溯的自顶向下分析思想
4.2 知识要点
4.3 练习题及参考答案解析
4.3.1 练习题
4.3.2 参考答案解析
4.4 考研题及参考答案解析
第5章 自底向上语法分析
5.1 基本内容
5.1.1 自底向上语法分析方法
5.1.2 简单优先分析法
5.1.3 算符优先分析法
5.1.4 优先函数及其构造
5.1.5 LR分析
5.1.6 LR(0)分析法
5.1.7 SLR(1)分析法
5.1.8 LR(1)分析法
5.1.9 LALR(1)分析法
5.1.10 二义性文法的分析
5.2 知识要点
5.3 练习题及参考答案解析
5.3.1 练习题
5.3.2 参考答案解析
5.4 考研题及参考答案解析
第6章 语法制导翻译和中间代码
6.1 基本内容
6.1.1 语义分析及其功能
6.1.2 属性文法
6.1.3 语法制导翻译
6.1.4 中间代码
6.1.5 常见语法成分的翻译
6.2 知识要点
6.3 练习题及参考答案解析
6.3.1 练习题
6.3.2 参考答案解析
6.4 考研题及参考答案解析
第7章 符号表
7.1 基本内容
7.1.1 符号表的建立与作用
7.1.2 符号表的内容
7.1.3 符号表栏目的组织
7.1.4 符号表的操作和结构
7.2 知识要点
7.3 练习题及参考答案解析
7.3.1 练习题
7.3.2 参考答案解析
7.4 考研题及参考答案解析
第8章 运行阶段的存储组织与分配
8.1 基本内容
8.1.1 概述
8.1.2 活动记录
8.1.3 存储组织与分配方案的分类
8.1.4 静态存储分配
8.1.5 动态存储分配
8.1.6 参数传递的方式
8.2 知识要点
8.3 练习题及参考答案解析
8.3.1 练习题
8.3.2 参考答案解析
8.4 考研题及参考答案解析
第9章 代码优化
9.1 基本内容
9.1.1 优化的目的
9.1.2 优化工作的分类
9.1.3 基本块内的优化
9.1.4 循环优化
9.1.5 程序流图
9.2 知识要点
9.3 练习题及参考答案解析
9.3.1 练习题
9.3.2 参考答案解析
9.4 考研题及参考答案解析
第10章 代码生成
10.1 基本内容
10.1.1 代码生成的任务
10.1.2 目标代码的形式
10.1.3 目标代码生成时寄存器分配的原则
10.1.4 目标代码结构
10.2 知识要点
10.3 练习题及参考答案解析
10.3.1 练习题
10.3.2 参考答案解析
10.4 考研题及参考答案解析
第二部分 清华大学《编译原理(第2版)》教材习题全解
第11章 引论
第12章 PL/O编译程序的实现
第13章 文法和语言
第14章 词法分析
第15章 自顶向下语法分析方法
第16章 自底向上优先分析
第17章 LR分析
第18章 语法制导翻译和中间代码生成
第19章 符号表
第20章 目标程序运行时的存储组织
第21章 代码优化
第22章 代码生成
第23章 编译程序的构造
第24章 面向对象语言的编译
第25章 编译程序的面向对象构造
参考文献