普通高等教育“十一五”国家级规划教材·21世纪计算机科学与技术实践型教程:编译原理及实现(第2版)
定 价:28 元
当前图书已被 1 所学校荐购过!
查看明细
- 作者:孙悦红 著
- 出版时间:2011/11/1
- ISBN:9787302265849
- 出 版 社:清华大学出版社
- 中图法分类:TP314
- 页码:256
- 纸张:胶版纸
- 版次:2
- 开本:16开
《普通高等教育“十一五”国家级规划教材·21世纪计算机科学与技术实践型教程:编译原理及实现(第2版)》以通俗易懂的语言介绍编译原理的理论和常用的方法与技术,并着重介绍各种编译方法的实现途径。全书共分10章,包括形式语言基础、词法分析、语法分析、语义分析及代码生成、符号表管理、运行时的存储分配,以及代码优化等。考虑目前学计算机专业的学生对C语言比较了解,本书以C语言为雏形设计了一种TEST语言,并在介绍全书内容时,用TEST语言进行分析与实现,使编译原理的抽象性通过TEST语言编译器的实现而具体化,从而使读者轻松掌握编译原理。
《普通高等教育“十一五”国家级规划教材·21世纪计算机科学与技术实践型教程:编译原理及实现(第2版)》理论与实践并重,内容深入浅出,便于自学。每章后都提供了适量的习题。
《普通高等教育“十一五”国家级规划教材·21世纪计算机科学与技术实践型教程:编译原理及实现(第2版)》特点 本教材以通俗易懂的语言讲解编译原理,包括词法分析、语法分析、语义分析及代码生成、符号表管理、运行时的存储分配、代码优化等,并注重介绍各种编译方法的应用实现。 本教材考虑到目前学计算机专业的学生对C语言比较了解,以C语言为雏形设计了一种TEST语言,并建立该语言的词法、语法、语义文法规则,系统介绍编译过程的各个部分,摆脱了以往编译教材的抽象以及理论与实际的脱节,使编译原理的抽象性通过TEsT语言的编译器实现而具体化,从而使学习者轻松掌握编译原理。 目前多数已出版的编译原理教材普遍偏重于理论,对实现技术讲解的极少或根本没有,而且教材内容过多,由于授课时数的限制以及学生接受能力的差异,教科书的内容往往不能充分利用。而本书以通俗易懂的语言讲解编译原理,注重理论与实践相结合,深入讲解如何具体用C语言编程实现词法分析、语法分析以及语义分析和代码生成,从而使学习者不再畏惧编译原理的学习,提高学习并动手编写编译器的兴趣。
编译原理是高等学校计算机专业的必修专业课之一,是一门理论与实践并重的课程。编译原理介绍程序设计语言翻译的原理、技术及实现,对引导学生进行科学思维、提高学生解决实际问题的能力有重要作用。
在我国高等教育逐步实现大众化后,越来越多的高等学校将会面向国民经济发展的第一线,为行业、企业培养各类高级应用型专门人才。而受我国传统历史文化思想的影响,重理论、轻实践的观念在高教界仍较普遍,使我们培养的很多人才不适应社会需求,造成毕业生的结构性就业困难,这也迫使很多高等学校走向应用型教育,培养应用型人才。目前国内的编译原理教材大多偏重于理论,对实现技术介绍得较少,使学习者感到抽象、难以理解;而且教材篇幅厚重,由于授课时数的限制,以及学生接受能力的差异,教科书的内容往往不能充分发挥作用。根据这种现状,我们编写了本书,目的在于加强对学生应用能力的培养,使学生不仅具备理论知识,更要具备应用能力,使所学能为所用,以适应新经济时代对人才的需要,满足就业要求。
本书以通俗易懂的语言介绍编译原理,包括词法分析、语法分析、语义分析及代码生成、符号表管理、运行时的存储分配、代码优化等,并着重介绍各种编译方法的实现途径。考虑到目前计算机专业的学生对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抽象机模拟器的完整程序。每章后都提供适量的习题,使学习者通过适量的练习掌握书中的内容。
本书是作者多年教学实践的汇集和提炼,同时也参考了许多国内外的参考书,第2版除了修改第1版的部分内容外,还增加了实例。在第2版的编写中,司慧琳、曹建、陈红倩参与了本书第3、4、6、9章的部分内容的编写和示例程序的设计与调试,陈谊参加了本书的内容编排和资料收集工作,并提出了许多宝贵意见。本书还配有相应的教学辅助课件,以及词法分析、语法分析和语义分析方法的演示程序(包括递归下降、LL (1) 、LR分析法和可在DOS环境下运行的LEX与YACC) ,有需要者可与作者联系,E-mail地址为: sun_yh@tom.com.
鉴于作者水平有限,书中难免有错误和不妥之处,恳请读者批评指正。
第1章 编译概述
1.1 程序设计语言
1.2 翻译程序
1.3 编译程序的组成
1.3.1 词法分析
1.3.2 语法分析
1.3.3 语义分析及中间代码生成
1.3.4 代码优化
1.3.5 目标代码生成
1.3.6 符号表管理
1.3.7 错误处理
1.4 编译程序的结构
1.4.1 单遍编译程序
1.4.2 多遍编译程序
1.4.3 编译程序分遍的优缺点
1.4.4 “端”的概念
1.5 编译程序的前后处理器
1.5.1 预处理器
1.5.2 汇编程序
1.5.3 连接加载程序
1.6 TEST语言与编译器
1.6.1 TEST语言
1.6.2 TEST编译器
1.6.3 TEST机
习题
第2章 文法和语言
2.1 字母表和符号串
2.1.1 字母表
2.1.2 符号串
2.1.3 符号串及其集合的运算
2.2 文法
2.2.1 文法形式定义
2.2.2 文法的EBNF表示
2.3 推导
2.3.1 直接推导定义
2.3.2 推导定义
2.3.3 规范推导
2.4 句型和句子
2.5 语言
2.6 递归规则与递归文法
2.6.1 递归规则
2.6.2 递归文法
2.7 短语、简单短语和句柄
2.8 语法树
2.9 子树与短语
2.10 由树构造推导过程
2.11 文法的二义性
2.12 有关文法的实用限制
2.13 文法和语言分类
习题
第3章 词法分析
3.1 词法分析的功能
3.2 程序语言的单词符号种类及词法分析输出
3.3 正则文法及状态图
3.3.1 状态图
3.3.2 状态图的用法
3.4 词法分析程序的设计与实现
3.4.1 TEST语言的词法规则及状态图
3.4.2 TEST语言词法分析程序的构造
3.4.3 TEsT语言的词法分析程序实现
3.5 正则表达式
3.5.1 正则表达式定义
3.5.2 正则文法到正则表达式的转换
3.6 有穷自动机
……
第4章 语法分析——自顶向下分析
第5章 语法分析——自底向上分析
第6章 语法制导翻译技术
第7章 符号表管理技术
第8章 程序运行时的存储组织及管理
第9章 语义分析和代码生成
第10章 代码优化
附录A TEST语言文法规则
附录B 词法分析程序
附录C 语法分析程序