编译原理
分類: 图书,计算机/网络,程序设计,其他,
作者: 何炎祥主编
出 版 社: 高等教育出版社
出版时间: 2004-8-1字数:版次: 1页数: 297印刷时间:开本: 16开印次:纸张:I S B N : 9787040153910包装: 平装内容简介
本书主要介绍设计和构造编译程序的基本原理和方法。内容包括形式语言理论和自动机理论、常用的词法分析方法、各种经典的语法分析方法、语法制导翻译方法、存储器的组织与管理方法、符号表的组织与造查表方法、代码优化和代码生成方法、并行编译程序及编译自动化技术等。
本书注重理论与实践、原理与方法的互通,基本概念阐述清晰,讲授深入浅出,循序渐进,系统性强。各章之后还附有难度不一的习题供复习、思考和探索之用。本书既可作为高等院校计算机专业的教材,也可供相关专业师生和科技工作者及软件研发人学习和参考。
目录
第1章引论
1.1翻译程序
1.1.1程序设计语言
1.1.2翻译程序
1.2为什么需要编译程序
1.3编译程序的工作过程
1.3.1分析
1.3.2综合
1.4编译程序的结构
1.5编译程序的组织方式
1.6编译程序的其他有关技术
1.6.1编译程序的自展技术
1.6.2编译程序的移植技术
1.6.3编译程序自动化
1.6.4程序的可再入性
1.7翻译程序编写系统
1.8并行编译程序
1.9小结
习题
第2章形式语言概论
2.1语言成分
2.2产生式文法和语言
2.2.1产生式文法
2.2.2上下文无关文法
2.2.3上下文无关文法定义的语言
2.3文法的分类
2.3.1文法分类
2.3.2文法分类的意义
2.3.3文法举例
2.4语言和语法
2.4.1句型、句子和语言
2.4.2语法树
2.4.3语法树的生成过程
2.5文法和语言的一些特性
2.5.1无用非终结符号
2.5.2不可达文法符号
2.5.3可空非终结符
2.5.4最左、最右推导和规范推导
2.5.5二义性
2.6分析方法简介
2.6.1 自上而下分析方法
2.6.2确定的自上而下分析方法
2.6.3自下而上分析方法
2.6.4文法在内存中的表示
2.7小结
习题二
第3章有穷自动机
3.1概述
3.2有穷自动机的形式定义
3.2.1状态转换表
3.2.2状态转换图
3.2.3构形和移动
3.2.4自动机的等价性
3.2.5非确定有穷自动机
3.3NDFSA到DFSA的转换
3.3.1空移环路的寻找和消除
3.3.2消除空移
3.3.3利用状态转换表消除空移
3.3.4确定化——子集法
3.3.5确定化——造表法
3.3.6消除不可达状态
3.3.7确定的有穷自动机的化简
3.3.8从化简后的DFSA到程序表示
3.3.9小结
……
第4章词法分析
第5章自上而下语法分析
第6章自下而上分析和优先分析方法
第7章自下而上的LR(K)分析方法
第8章语法制导翻译法
第9章运行时的存储组织与管理
第10章符号表的组织和查找
第11章优化
第12章代码生成
参考文献
书摘插图
第1章引论
编译程序是高级语言的支撑基础,是计算机系统中重要的系统软件之一。编译原理是计算机科学技术中发展最为迅速的一个分支,现已基本形成了一套比较系统、完整的理论和方法。本章主要介绍为什么需要编译程序以及编译程序的功能、体系结构、工作过程、组织方式、编译程序与高级程序设计语言的关系,以及编译自动化和并行编译程序等方面的基本知识。
1.1 翻译程序
1.1.1 程序设计语言众所周知,自然语言是人类传递信息、交流思想和情感的工具,程序设计语言则是人与计算机联系的工具。人正是通过程序设计语言指挥计算机按照人的意志进行运算和操作、显示信息和输出运算结果的。
最早的计算机程序设计语言是机器语言(指令系统)。机器语言中的指令都是用二进制代码直接表示的,指令难记、难认,因而机器语言程序难写、难读、难修改。一个机器语言程序的编写时间往往是它运行时间的几十倍到几百倍。随着计算机科学技术的发展,出现了符号语言和汇编语言等程序设计语言,它们虽然比机器语言前进了一步,但仍属于计算机低级语言,用来编写程序还是很不方便。程序编写的效率低下阻碍了计算机科学技术的发展和推广应用,因此,程序设计语言自身的自动化势在必行。
1954年,FORTRAN I语言的问世标志着计算机高级程序设计语言的诞生。随后,计算机高级程序设计语言如雨后春笋,层出不穷。至今,全世界已经出现的计算机高级程序设计语言大概有几千种,但典型的常用语言不过十几种。计算机高级程序设计语言仍在不断发展,目前流行的面向对象程序设计语言是对传统的面向过程程序设计语言的一种挑战。
计算机高级程序设计语言独立于机器,比较接近自然语言,因而容易学习和掌握,且程序编写效率高,编写出的程序易读、易理解、易修改、易移植。
……