出版时间:2009-7 出版社:清华大学出版社 作者:康慕宁,任国霞,唐晶磊 编著 页数:207
前言
编译原理是计算机专业中一门重要的专业课程。设置本课程的目的,在于系统地向学生讲述编译系统的结构、工作流程、设计原理和实现技术。通过本书的学习,使学生掌握在编译理论和方法方面的基本知识,也具有设计实现、分析和维护编译程序方面的初步能力,也可以提高学生科学思维能力和综合运用专业知识与解决实际问题的能力,所以这门课程在计算机专业体系中占有十分重要的地位。编译原理是一门理论性和实践性都比较强的课程。编者在编写过程中,力图尽可能使本教材达到知识内容组织合理,由浅入深,循序渐进的目的。书中详细而系统地介绍了程序设计语言翻译的基本原理与方法,同时本书的特色主要体现在每章开始都有本章简介,章末均有小结,另外,每章后面都有与讲解内容紧密相关的习题,可以使学生更好地掌握所学的知识内容,也可以成为考研学生很好的一本参考书籍。本书共分为11章,第1~6章由西北工业大学计算机学院的康慕宁教授编写,第7~9章由西北农林科技大学信息工程学院的唐晶磊编写,第10、11章由西北农林科技大学信息工程学院的任国霞副教授编写。我们特别感谢北京工业大学蒋宗礼教授,蒋教授对本书进行了仔细的审阅,提出了许多宝贵的意见及指导性的建议。这里也特别感谢清华大学出版社的大力支持,使本书得以顺利出版。由于我们的能力有限,书中难免有一些错误和不足,敬请读者批评指正。
内容概要
本书系统地阐述了编译系统的结构、工作流程、设计原理和实现技术。主要内容包括程序设计语言基本知识、词法分析、语法分析、语义分析与属性文法、语法制导的代码生成、运行时存储空间组织、代码生成与优化等。通过本书的学习,使学生掌握编译理论和方法的基本知识,具有设计实现、分析和维护编译程序方面的初步能力,提高学生科学思维能力和综合运用专业知识的能力与解决实际问题的能力。书中每章开始有本章内容简介,每章后面都有与内容紧密相关、难度适宜的习题,可以使学生更好地掌握本章所学的知识内容。 本书适合作为高等学校计算机及相关专业的教材,也可以作为考研学生的一本参考书。
作者简介
康慕宁,1982年西北大学计算机系本科毕业,获理学学士学位;1984年西北工业大学计算机系研究生毕业,获工学硕士学位。现为西北工业大学计算机学院软件与理论系教授,中国计算机学会高级会员。多年在教学一线主讲计算机专业本科及研究生编译原理、形式语言与自动机、组合数学
书籍目录
第1章 编译程序理论概述 1.1 导言 1.2 语言及其翻译 1.3 语法的功能 1.4 程序设计语言的发展 1.5 编译程序的结构 1.5.1 词法分析 1.5.2 字符串表 1.5.3 语法分析 1.5.4 语义分析 1.5.5 符号表 1.5.6 代码优化程序 1.5.7 代码生成程序 1.6 特殊约定 缩写词与关键字 习题第2章 语法及其分类 2.1 概述 2.2 文法 2.2.1 字母表与字符串 2.2.2 非终结符与产生式 2.2.3 文法的例子 2.3 文法及语言的Chomskey分类 2.4 规范推导 2.5 文法的二义性 习题第3章 扫描器与正规语言 3.1 词法分析程序简介 3.2 正规表达式 3.2.1 正规表达式代数 3.2.2 正规表达式的性质 3.3 有限状态自动机 3.4 非确定的有限状态自动机 3.5 将正规文法转换为自动机 3.6 NDFA的确定化及化简 3.7 从有限状态自动机转换到正规文法 3.8 有限自动机在计算机中的实现 3.9 扫描器实现中的特殊问题 3.9.1 输入符号表 3.9.2 扫描器自动机中的终止状态 3.9.3 删除空白符号与注释 3.9.4 输出单词 3.10 字符串表的实现 3.11 保留字 3.12 使用扫描器自动生成工具 缩写词与关键字 习题第4章 语法分析与前后文无关文法 4.1 导论 4.2 下推自动机 4.2.1 停机条件的等价性 4.2.2 从前后文无关文法CFG构造PDA ……第5章 语义分析与属性文法第6章 语法制导的代码生成第7章 符号表第8章 运行时存储空间的组织与管理第9章 代码优化第10章 目标代码生成参考文献
章节摘录
插图:第1章 编译程序理论概述1.1 导言编译程序设计是少数几个由抽象的理论改变人们编写程序方法的计算机科学领域之一。最早的编译程序采用传统的“对号入座”的程序设计技术,直到“语法制导”分析程序的出现才得到改变。一个好的编译程序的任何部分都或多或少地与语法相关,因为语法理论可以驱动编译程序的设计,并使编译程序的设计清晰、易实现。1.2 语言及其翻译计算机语言像自然语言一样,为了沟通信息而定义了用单词构造句子的方法。自然语言可以表达、传递人们心灵的感觉、客观的世界真相、人们对这些感觉和真相提出的问题以及要求他人听从的指令等等,但计算机语言则被限制用于描述要求接受该语言的机器听从的指令。自然语言限制了允许说的句子的形式,例如,人们可以说:“约翰吃香蕉”,但不能说:“约翰香蕉吃”。第一句语法正确,而第二句则不符合中文的语法。又如,英文句子John eats an apple是正确的句子,而eats Jqbn apple an却不符合英语语法。会英、德两种语言的人马上就知道德语句子John iBt einen Apfel与Johneats an apple说的是一回事,但对只熟悉其中一种语言的人来说,就不知道两句话同义了。因为,单词iBt在英语中无任何意义,同样eats也不是德语中的正确单词。当一个不懂德语的英国人想与不懂英语的德国人相互交流时,就需要有一个翻译。在自然语言中,翻译是将他所接收的一种语言的信息表述为另一种语言的人。他将所读的英语句子John eats an apple写成德语句子John iBt einen Apfel。对于错误的句子eats John apple an,他将无法翻译。
图书封面
评论、评分、阅读与下载