编译原理(计算机系列教材)
分類: 图书,计算机/网络,程序设计,其他,
作者: 陈英 等编著
出 版 社: 清华大学出版社
出版时间: 2009-4-1字数:版次: 1页数: 336印刷时间:开本: 16开印次:纸张:I S B N : 9787302197447包装: 平装内容简介
本书系统全面地介绍经典、广泛应用的高级程序设计语言编译程序的构造原理、实现技术、方法和工具。本书包含了现代编译程序设计的基础理论和技术,并在语义分析、代码优化,面向对象语言的编译及高级优化技术等方面反映了20世纪90年代后的一些重要研究成果,特别兼顾近年来编译原理及技术的发展和发生的一些重要变化,专辟“编译技术高级专题”予以介绍。本书的组织注重提炼精华、循序渐进、深入浅出,每章开头提炼了该章涉及的主要内容、要点和关键概念,全书精编、精选了近300道各种类型的习题和思考题,还提供了编译程序实现的具体实例,能够辅助读者更好地学习和掌握编译原理。
本书可以作为计算机学科类专业及相关专业本科和研究生编译原理的教科书,也可以作为软件技术人员的参考用书。
目录
第1章 编译引论
1.1 程序设计语言与编译程序
1.1.1 编译程序鸟瞰
1.1.2 源程序的执行
1.2 编译程序的表示与分类
1.2.1 T型图
1.2.2 编译程序的分类
1.3 编译程序的结构与编译过程
1.3.1 编译程序的结构与编译过程
1.3.2 编译程序结构的公共功能与编译程序的组织
1.4 语言开发环境中的伙伴程序
1.5 编译程序结构的实例模型
1.5.1 一遍编译程序结构
1.5.2 PRIME机上AHPL语言的两遍编译程序
1.5.3 PDP一11计算机上C语言的三遍编译程序
1.5.4 Tiger编译程序结构
1.5.5 GCC编译程序结构框架
1.6 编译程序的构造与实现
1.6.1 如何构造一个编译程序
1.6.2 编译程序的生成方式
1.6.3 编译程序的构造工具
习题1
第2章 形式语言与自动机理论基础
2.1 文法和语言
2.1.1 语言的语法和语义
2.1.2 文法和语言的定义
2.1.3 文法的表示方法
2.1.4 语法分析树与二义性
2.1.5 文法和语言的类型
2.2 有限自动机
2.2.1 确定的有限自动机
2.2.2 非确定的有限自动机
2.2.3 确定的有限自动机与非确定的有限自动机的等价
2.2.4 确定的有限自动机的化简
2.3 正规式与有限自动机
2.3.1 有限自动机与正则文法
2.3.2 正规式与正规集
2.3.3 正规式与有限自动机
习题2
第3章 词法分析
3.1 词法分析与词法分析程序
3.2 词法分析程序设计与实现
3.2.1 词法分析程序的输入与输出
3.2.2 源程序的输入与预处理
3.2.3 单词的识别
3.2.4 词法分析程序与语法分析程序的接口
3.2.5 词法分析器的设计与实现
3.3 词法分析程序的自动生成
3.3.1 词法分析自动实现思想与自动生成器——Lex/Flex
3.3.2 Lex运行与应用过程
3.3.3 Lex语言
3.3.4 词法分析器产生器的实现
3.3.5 Lex应用
习题3
第4章 语法分析——自上而下分析
4.1 语法分析综述
4.1.1 语法分析程序的功能
……
第5章 语法分析——自下而上分析
第6章 语义分析与中间代码生成
第7章 运行环境
第8章 代码优化
第9章 代码生成
第10章 编译程序实现范例
第11章 编译技术高级专题
参考文献
书摘插图
第1章 编译引论
1.1 程序设计语言与编译程序
1.1.1 编译程序鸟瞰
学习编译程序的构造原理、方法和技术,需搞清编译程序的由来及定义,即何为编译程序,这亦是本书的研究对象。
众所皆知,一个计算机程序总是基于某种程序设计语言。半个多世纪以来,程序设计语言经历了由低级向高级的发展,从最初的机器语言、汇编语言,发展到较高级的程序设计语言,直至今天的第四代、第五代高级语言。高级程序设计语言的以人为本,面向自然语言表达,易学、易用、易理解、易修改等优势加速了程序设计语言的发展。程序设计语言的发展和应用,促进了计算机的普及使用,也大大提高了计算机的效率,增强了其功能,这在计算机科学发展史上是一个重要的里程碑。计算机的深入发展和应用普及除了计算机硬件本身发展迅速的因素外,与之相适应的更为重要的因素是计算机软件的飞速发展,多数计算机用户是通过应用程序设计语言这种更直接的方式来实现使用计算机的意图和目的。
但是就目前而言,计算机硬件自身根本不懂BASIC,Pascal,C,C++,Ada和Java等高级语言,用高级语言编写的程序计算机不能直接执行,因为计算机仅能识别的是机器语言。高级程序设计语言只是人和计算机交互的媒介。那么,如何使一个高级语言编写的程序能够在只认得机器语言的计算机上执行呢?这就需要像人们为了通信、交流的方便,建立各种语言的翻译一样,由从事计算机软件工作的人员搭一座桥梁,作为沟通计算机硬件与用户之间的渠道,这座桥梁即为“编译程序”,亦称“语言处理程序”。
……