本书对编译各部分知识的要点和难点,对解题的方法和技巧作了全面的分析。按自测题、历年考研试题、典型问题和典型方法等不同层次,提供了大量编译习题及其分析和解答。更重要的是,通过对编译原理基本思路透彻的分析、归纳和总结,通过对典型问题的剖析,使读者能更好地掌握编译的学习方法(包括解题的基本方法)。本书表述严谨,推理缜密,语言精练,实例丰富。对高校计算机专业学习编译课程的学生,是一本合适的参考书;对相关专业的毕业生,是一本难度适中的考研教材;对有志于计算机科学事业者,是一本可选的自学读本;对从事编译课程教学的教师,也不失为一本良好的教学参考书。本书提供的每一层次的习题,均附有解答,以便于读者学习之用。在计算机软件科学中,编译是较早在实践上和理论上同时取得巨大发展的一个分支。世界上第一个编译程序,早在20世纪50年代中期就已问世。经过近半个世纪的努力,编译理论和技术伴随着计算机技术的发展而迅速完备化和系统化,形成了一个完整的理论体系,并且开发出了丰富的编译程序的实现语言、实现环境和开发工具。在此基础上,设计并实现一个编译程序不再是高不可攀的事情。编译技术,作为一门计算机软件技术,内涵极为丰富。有关词法、文法的分析,有关表格的处理,有关符号信息的处理方法,有关清晰有效的算法描述方法,有关形形色色数据结构的运用,自动机理论及其对规划程序的指导作用……,凡此种种,不仅为编译科学自身提供了坚强的支持,而且为软件工程和各种软件开发技术的发展和完备,为整个软件学科的发展作出了宝贵的贡献。也正因为这个原因,编译原理成为计算机专业一门重要的专业课程,也成为高等学校计算机专业研究生入学考试的一项重要内容。由于编译原理这门课内涵丰富,外延广泛,有一定的复杂性,所以学习者掌握起来有一定的难度,解答习题和分析问题也往往会遇到一定的困难。因此,一本编译的习题书,一本有关分析和解答编译问题的参考书,对每个计算机专业的学习者都是有益处的。编者有多年的教学实践,通过汇集、加工、整理资料,编写了这本《编译原理解题与分析》,目的在于:为学习编译原理者提供一本合适的参考书;为考研复习者提供一本有价值的带分析的习题书。本书中,按典型问题和典型方法、历年考研试题、自测题等不同层次,提供了大量编译习题。但是,编者更多的是想通过对编译原理基本思路透彻的归纳、分析和总结,并对典型问题的剖析,使编译的学习方法,包括解题的基本方法能给学习者留下较为深刻的印象,从而为把厚厚的编译教材读"薄"。全书分为10章:第1章是编译及相关知识的概述:第2章是文法和语言的形式定义和编译中的概念和原理的的综合;第3章介绍词法分析方法和单词的识别工具(主要介绍了自动机理论);第4章和第5章按自顶向下和自底向上介绍了语法分析的算法;第6章论述语法制导翻译和中间代码生成的种种处理;第7章是符号表的组织和处理方法,第8章是存储组织与分配;第9章和第10章分别介绍了代码优化和目标代码生成的相关内容。重点在第2、3、4、5章。每一章按本章导读、知识结构、知识要点扫描、难点剖析、典型问题和典型方法、历年试题解析、自测题和自测题参考答案等8个部分。典型问题和典型方法指出了每章难点、要点、关键点所在,并注意分析产生错误的根源:历年试题解析按年份的次序选编了全国名校的研究生入学试题。这两部分的习题均有一定的难度,均附有解题思路和分析解答过程,以适合不同层次的学生的需求。本书难易适当,适用于计算机本科学生作为编译原理课程的参考书,也适用于报考计算机专业研究生的学生作为复习指导书。编写本书时,编者尽力将多年教学实践中的体会和发现的各种难点和关键问题以直观、简洁的形式蕴含在实际例题的分析之中,旨在加深读者对知识的理解。由于编者水平有限,加之时间紧迫,习题量大,所以本书无论在编排上和内容上,都难免会有不合理及疏漏之处,请广大读者批评指正。本书由王海源主编,参加编写的还有张世正教授、胡金初副教授、马燕副教授、胡荷芬副教授、徐伟祖、俞嵘、张兆滨和丁北英四位高级工程师,许航老师、陈军华老师以及王蓓、张梅女士也给予我们真诚的帮助。在此,表示由衷的感谢!作者