前 言
《编译原理》是计算机专业的一门重要专业基础课,它介绍了编译过程中的一些基本原理、技术及其实现方法。学习这方面的知识,对计算机专业许多问题的理解能够起到融会贯通的作用。但由于《编译原理》课程涉及内容广,具有较强的理论性,所以学生掌握起来有一定的难度,解答习题也往往需要花大量的时间。
编著者总结多年的教学实践,收集和整理大量的资料,于2001年在清华大学出版社出版了《编译原理习题与解析》,目的不仅仅是对习题给出答案,更多的是想通过对习题的分析与解答,帮助学生充分理解编译的基本原理,了解和掌握基本的编译方法,提高分析问题、解决问题的能力。
修订感言
《编译原理习题与解析》出版后,得到了不少读者的关注,大家也对该书存在的问题提出了许多建议和意见,在此由衷地表示感谢!
本书初版时,编著者尚年轻气盛,初生牛犊不怕虎,书稿完成后匆匆校订即送交给了出版社。等到书印刷成型拿到手后,才感到书中还有许多不当之处。几年来为此心中一直耿耿,担心会因此误人,总希望能有机会对该书进行彻底的修订,以解自己心中的歉意并答谢曾经给予关注的读者。
本书重新修订,主要进行了如下工作:
? 增加了对习题(包括部分填空题、选择题、判断题)的解答分析过程;
? 对部分章节进行了合并;
? 删去了部分繁琐、重复的内容;
? 更正了部分错漏之处;
? 统一了部分名词的描述方式;
? 增加了近几年国内重点高校硕士研究生入学考试试题。
此外,书中保留了每章的“基本内容”介绍部分,主要是为了方便读者使用本书时对有关知识点的查阅。
本书内容
本书共分13章。第1章是编译课程的预备知识。第2章涉及程序的翻译和编译程序的组成。第3章是对文法、语言的形式定义及编译过程中一些基本概念的综合。第4章介绍有穷自动机理论和词法分析的基本方法。第5章介绍自上而下语法分析。第6章是自下而上语法分析。第7章是语法制导翻译,介绍了编译过程中常用的一些中间语言及属性文法的构造。第8章总结了符号表及符号表在编译过程中的作用。第9章讲解运行阶段的存储组织与分配。第10章总结了中间代码优化的方法。第11章是代码生成的简介。第12章是编译程序对源程序中错误的检测和处理方法概述。最后在第13章给出了一些综合题。根据教学大纲要求,本书内容重点在第3、4、5、6、7章。
讲解安排
每章在基本内容中精选了相关的概念、方法和原理,并附有大量的习题。习题分为基本题和习题解析:基本题又分为填空题与单项选择题;习题解析部分既收录了一些较容易的题目,也有相当一部分是取自高校、科研院所的研究生入学试题(每题题号后有标注,并根据内容需要对某些题目作了改动),有一定难度。基本题都给出了相应的答案,习题解析部分的每一道题基本上都给出了求解思路和解答过程,以适应不同层次学生的需要。
适用对象
本书难易适当,不仅可作为计算机专业本科生的学习用书,也适合作为课程考试和研究生考试辅导书,任课教师可以作为教学参考书使用。对于参加计算机软件专业技术水平考试的应试者,也有一定的参考价值。
编写本书时,编著者力求将自己多年教学积累下来的一些想法以及教学中发现的学生难以理解的问题融于各章习题解答中,希望能有助于读者对编译课程所涉及知识的理解。由于习题较多,时间仓促,加上编著者水平有限,虽然希望自己能将书中所有的错误全都改过,但仍可能存在本人认识错误之处以及错漏之处,内容编排上也一定存在不够合理的地方,希望读者发现后能与编著者联系以便再版时改进。诚请广大读者批评指正。
联系方式:wu_chx@sina.com。
