本书针对“编译原理”课程理论性和实践性较强的特点、依据编者多年来教学实践的积累,选取了大量题目,并进行了分析解答。全书共分9章,基本覆盖了编译原理课程的主要内容,每章包括“知识要点”、“例题解析”、“习题及部分参考答案”三大部分,力求引导读者从理论到实践全面掌握编译技术的原理、概念和方法。
本书可作为计算机专业本科生的学习辅导用书,也可用于研究生入学考试的复习指导,还可供计算机软件开发人员参考阅读。
第1章 编译程序概论
1.1 知识要点
1.2 例题解析
1.3 习题及部分参考答案
第2章 有限自动机与词法分析
2.1 知识要点
2.2 例题解析
2.3 习题及部分参考答案
第3章 文法和语言
3.1 知识要点
3.2 例题解析
3.3 习题及部分参考答案
第4章 语法分析
4.1 知识要点
4.2 例题解析
4.3 习题及部分参考答案
第5章 语义分析和符号表
5.1 知识要点
5.2 例题解析
5.3 习题及部分参考答案
第6章 中间代码和语法制导翻译
6.1 知识要点
6.2 例题解析
6.3 习题及部分参考答案
第7章 运行时间存储空间
7.1 知识要点
7.2 例题解析
7.3 习题及部分参考答案
第8章 代码优化
8.1 知识要点
8.2 例题解析
8.3 习题及部分参考答案
第9章 自测试卷汇编
本科生期末试卷(一)
本科生基末试卷(二)
本科生基末试卷(三)
研究生入学试卷(一)
研究生入学试卷(二)
研究生入学试卷(三)
参考文献
“编译原理”是计算机专业的一门主要专业课。通过对本课程的学习,不仅可以掌握编译程序本身的基本实现原理和技术,同时也有助于提高对程序设计语言的理解,提高语言设计及程序设计的能力。该课程涉及内容较广,具有很强的理论性与实践性,且内容抽象、较难理解,掌握起来有一定的难度。本书根据编者多年的教学实践,精选了该课程主要内容的典型习题,通过课程辅导与习题解析的方式帮助读者理解编译程序构造的基本原理和概念,掌握编译的相关技术,提高解题能力。
本书共分9章。第l章简要介绍程序设计语言的特点与编译的基本概念。第2章介绍词法分析器的设计,主要涉及正则表达式与有限自动机相关理论方法。第3章概要介绍了形式语言的基本概念、文法的定义及变换方法。第4章主要介绍语法分析的相关内容,包括自顶向下和自底向上两种语法分析方法;自顶向下分析法介绍了递归下降法和LL方法;自底向上分析法介绍了简单优先方法、算符优先方法和LR方法。第5章介绍符号表的组织,主要涉及语义信息的提取、存放和使用方法。第6章介绍语法制导翻译与中间代码生成的有关内容,给出了如何利用语法分析算法控制语义加工生成中间代码的方法。第7章重点介绍程序运行时存储空间组织及分配的相关内容。第8章主要介绍代码优化内容。第9章提供了本科期末考试试题和硕士研究生入学考试试题供读者参考。
为了便于读者学习,本书每一章内容分为三部分:第一部分介绍本章包含的内容和需要重点掌握的知识要点;第二部分对本章的典型例题进行较详细的分析和解答;第三部分提供了自测习题和部分自测习题的参考答案,目的是提高读者独立分析和解决问题的能力。
本书提供的习题难易程度较为适当,既可作为高校计算机专业本科生的学习辅导书,也可用于计算机相关专业研究生入学考试的复习指导。
本书的完成得益于编者多年来编译原理教学实践的积累,同时也与张基温教授大力支持和帮助密不可分,在此致以真诚的谢意。本书主要由张伟编写,康辉、张利华两位老师也参加了部分编写工作。由于编者水平有限,书中难免有错漏和不妥之处,敬请广大读者批评指正。
编 者
2004年10月