图书前言

前言  

  

编译原理及实现  编译原理是高等学校计算机专业的必修专业课之一,是一门理论与实践并重的课程。编译原理介绍程序设计语言翻译的原理、技术及实现,对引导学生进行科学思维,提高学生解决实际问题的能力有重要的作用。

在我国高等教育逐步实现大众化后,越来越多的高等学校将会面向国民经济发展的第一线,为行业、企业培养各级各类高级应用型专门人才。而受我国传统历史文化思想的影响,重理论、轻实践的观念在高教界仍较普遍,使我们培养的很多人才不适应社会需求,造成毕业生的结构性就业困难,这也将迫使很多高等学校走向应用型教育,培养应用型人才。目前国内大多数的编译原理教材偏重于理论,对实现技术介绍得较少,使学习者感到抽象、难以理解;而且教材篇幅厚重,由于授课时数的限制,以及学生接受能力的差异,教科书的内容往往不能充分利用。根据这种现状,我们编写了本书,目的在于加强对学生应用能力的培养,使学生不仅具备理论知识,更要具备应用能力,使所学能为所用,以适应新经济时代对人才的需要,满足就业要求。本书以通俗易懂的语言介绍编译原理,包括词法分析、语法分析、语义分析及代码生成、符号表管理、运行时的存储分配、代码优化等,并着重介绍各种编译方法的实现途径。考虑目前学计算机专业的学生对C语言比较了解,书中以C语言为雏形设计了一种TEST语言,建立该语言的词法、语法、语义文法规则,系统介绍编译过程的各个部分。包括词法分析、语法分析、语义分析及代码生成、符号表的建立及存储分配、错误处理都用具体的实例进行分析与实现。并针对TEST语言中的典型语句,深入讲解如何具体用C语言编程实现词法分析、语法分析以及语义分析和代码生成,摆脱以往编译教材的抽象性以及理论与实际的脱节,使编译原理的抽象性通过TEST语言的编译器实现而具体化,从而使学习者轻松掌握编译原理。

全书共分10章,大约需要70课时,其中包括20课时的上机。第1章对编译过程、编译程序的逻辑结构以及编译程序各组成部分的功能进行了概述;第2章介绍了文法和语言,它为后面各章的学习奠定了理论基础;第3章介绍了词法分析程序的设计原理,包括适合手工设计和自动生成词法分析程序的方法,以及TEST语言的词法分析程序的具体编程实现;第4章、第5章分别介绍了自顶向下和自底向上的语法分析方法,主要介绍了递归下降分析法、LL(1)分析法以及LR分析法,同时介绍了TEST语言的递归下降分析实现;第6章介绍了语法制导翻译的概念以及属性翻译文法;第7章介绍符号表的组织与管理;第8章介绍存储组织与分配技术;第9章介绍了语义分析及代码生成的概念和技术,并以TEST语言为范例,实现语义分析并同时生成抽象机汇编目标代码;第10章主要介绍了局部优化和循环优化常采用的方法。另外,附录中列出了TEST语言的文法规则、词法分析程序、语法分析程序、语义及代码生成程序以及TEST抽象机模拟器完整程序。每章后都提供了适量的习题,使学习者通过适量的练习掌握书中内容。

本书是作者多年教学实践的汇集、提炼,同时也参考了许多国内外的参考书。本书还配有相应的教学辅助课件,以及词法分析、语法分析和语义分析方法的演示程序(包括递归下降、LL(1)、LR分析法和可在DOS环境下运行的LEX与YACC),有需要者可与作者联系,地址为:sun_yh@tom.com。

鉴于作者水平有限,书中难免有错误和不妥之处,恳请读者批评指正。