《编译原理及实践》结合对现代编译器设计理论的详细研究,完整描述了一个可运行的小规模语言编译器(包括源代码)。《编译原理及实践》反映了作者的这样一些观点:不掌握理论就不会真正地理解实际的编译器设计:而对大学生来说,看不到理论在实际中的应用就不会真正地理解理论。把《编译原理及实践》讨论的概念统一起来,就是一个完整的可运行的编译器,它使用每一章所讨论的技术进行开发,用C语言写成。每章最后有大量的练习,使学生的注意力集中在编程问题上。主要特点:1 详细给出了自顶而下的分析算法(第4章和第5章),包括递归下降和LL(1)分析方法、自底向上的分析、LALR(1)分析表以及Yacc分析器产生器工具的使用。2 完整讨论了运行时环境的一般形式(第7章),从Fortran的完全静态环境到各种基于栈的环境,最后是Lisp语言的全动态环境。3 通过一个例子语言的完整的代码产生器介绍了代码生成(第8章),并介绍了代码优先技术。