编译原理与技术

出版时间:2010-8  出版社:高等教育出版社  作者:张昱,陈意云 著  页数:283  

前言

  编译原理和技术对高等学校计算机专业的学生和软件工程技术人员来说是重要的基础知识之一。本书是作者所编写的2009年度普通高等教育精品教材《编译原理》(第2版)(高等教育出版社2008年出版)的一个精简版本,面向少学时编译原理课程的教学需求。作者认为,对于普通高等学校的学生来说,学习编译技术的主要目的是掌握基本的编译技术,用以提高学习编程语言及在软件开发中应用编程语言的能力,包括:  (1)提高学习、理解和使用编程语言的能力。  (2)提高程序排错的能力,即快速理解、定位和解决在程序开发与程序运行中遇到的问题的能力。  (3)提高编写高质量代码的能力。  基于该观点,对原书的精简主要体现在下面几个方面:  (1)忽略对各种LR分析表构造算法的把握,强调对各种语法分析方法的理解。  (2)删除类型系统形式描述方法的介绍,保留体现类型系统在编程语言中重要地位的章节。  (3)压缩语法制导翻译的理论介绍,加强积累翻译方案设计技巧的例题和习题。  (4)淡化代码优化的数据流分析和控制流分析技术,用实例体现各种优化能达到的效果。  (5)取消函数式语言编译和无用单元收集算法等内容,增加理论联系实际的习题。  (6)附录中补充了用c语言写的PL,/0语言编译器(编译成中间代码)和中间语言解释器,并给出基于PL/O语言的课程实践选题。  此外,在学时数有限时,可以略去带星号的章节内容。  本书具有如下特点:  (1)强调对编译原理和技术的宏观理解和全局把握,而不把读者的注意力引导到理论和算法上。

内容概要

  《编译原理与技术》介绍基本的编译原理与编译技术,是2009年度普通高等教育精品教材《编译原理》(第2版)的精简版。《编译原理与技术》主要内容包括词法分析、语法分析、类型检查、运行时存储空间的组织和管理、中间代码生成、代码生成和代码优化、编译系统和运行系统、面向对象语言的编译等。《编译原理与技术》取材广泛、新颖,图文并茂;强调对编译技术的理解,淡化对相关理论的学习;强调对各种方法的把握,淡化对各个算法的掌握。  《编译原理与技术》可作为高等学校计算机科学及相关专业的少学时编译原理课程教材,也可供计算机软件工程技术人员参考使用。

书籍目录

第1章 引论1.1 编译器概述1.1.1 词法分析1.1.2 语法分析1.1.3 语义分析1.1.4 中间代码生成1.1.5 代码优化1.1.6 代码生成1.1.7 符号表管理1.1.8 阶段的分组1.1.9 解释器1.2 编译器技术的应用1.2.1 高级语言的实现1.2.2 针对计算机体系结构的优化1.2.3 新计算机体系结构的设计1.2.4 程序翻译1.2.5 提高软件开发效率的工具习题第2章 词法分析2.1 词法记号及属性2.1.1 词法记号、模式、词法单元2.1.2 词法记号的属性2.1.3 词法错误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 NFA到DFA的变换2.3.4 DFA的化简2.4 从正规式到有限自动机2.5 词法分析器的生成器习题第3章 语法分析3.1 上下文无关文法3.1.1 上下文无关文法的定义3.1.2 推导3.1.3 分析树3.1.4 二义性3.2 语言和文法3.2.1 正规式和上下文无关文法的比较3.2.2 分离词法分析器的理由3.2.3 验证文法产生的语言3.2.4 适当的表达式文法3.2.5 消除二义性3.2.6 消除左递归3.2.7 提左因子3.3 自上而下分析3.3.1 自上而下分析的一般方法3.3.2 LL(1)文法3.3.3 递归下降的预测分析3.3.4 非递归的预测分析3.3.5 构造预测分析表3.3.6 预测分析的错误恢复3.4 自下而上分析3.4.1 归约3.4.2 句柄3.4.3 用栈实现移进一归约分析3.4.4 移进一归约分析的冲突3.5 LR分析器3.5.1 构造SLR分析表3.5.2 LR分析算法3.5.3 其他LR分析表构造概述3.5.4 非二义且非LR的上下文无关文法3.6 语法分析器的生成器3.6.1 分析器的生成器Yace3.6.2 用Yacc处理二义文法3.6.3 Yace的错误恢复习题第4章 类型检查4.1 语法制导的翻译4.1.1 翻译方案4.1.2 语法树4.1.3 构造语法树的翻译方案4.1.4 翻译方案中属性的自下而上计算4.1.5 设计翻译方案的一些技巧4.2 类型在编程语言中的作用4.2.1 执行错误和安全语言4.2.2 类型化语言和类型系统4.2.3 类型化语言的优点4.3 一个简单类型检查器的规范4.3.1 一个简单的语言4.3.2 类型表达式4.3.3 类型检查4.3.4 类型转换4.4 类型表达式的等价4.4.1 类型表达式的结构等价4.4.2 类型表达式的名字等价4.4.3 记录类型4.4.4 类型表示中的环习题第5章 运行时存储空间的组织和管理5.1 局部存储分配5.1.1 过程5.1.2 名字的作用域和绑定5.1.3 活动记录5.1.4 局部数据的布局5.1.5 程序块5.2 全局栈式存储分配5.2.1 运行时内存的划分5.2.2 活动树和运行栈5.2.3 调用序列5.2.4 栈上可变长度数据5.2 ,5悬空引用5.3 非局部名字的访问5.3.1 无过程嵌套的静态作用域5.3.2 有过程嵌套的静态作用域5.4 参数传递5.4.1 值调用5.4.2 引用调用5.4.3 换名调用5.5 堆管理5.5.1 内存管理器5.5.2 计算机内存分层5.5.3 程序局部性5.5.4 手工回收请求习题第6章 中间代码生成6.1 中间语言6.1.1 后缀表示6.1.2 图形表示6.1.3 三地址代码6.1.4 静态单赋值形式6.2 声明语句6.2.1 过程中的声明6.2.2 作用域信息的保存6.2.3 记录的域名6.3 赋值语句6.3.1 符号表中的名字6.3.2 数组元素的地址计算6.3.3 数组元素地址计算的翻译方案6.3.4 类型转换6.4 布尔表达式和控制流语句6.4.1 布尔表达式6.4.2 控制流语句的中间代码结构6.4.3 布尔表达式的回填6.4.4 控制流语句的翻译6.4.5 开关语句的翻译6.4.6 过程调用的翻译习题第7章 代码生成和代码优化7.1 代码生成器设计中的问题7.1.1 目标程序7.1.2 指令选择7.1.3 寄存器分配7.1.4.计算次序选择7.2 目标语言7.2.1 目标机器的指令集7.2.2 指令代价7.3 基本块和流图7.3.1 基本块7.3.2 基本块的优化7.3.3 流图7.3.4 下次引用信息7.4 一个简单的代码生成器7.4.1 寄存器描述和地址描述7.4..2 代码生成算法7.4.3 寄存器选择函数7.4.4 为变址和指针语句产生代码7.4.5 条件语句7.5 代码优化概述7.5.1 ‘优化的主要源头7.5.2 一个实例7.5.3 公共子表达式删除7.5.4 复写传播7.5.5 死代码删除7.5.6 代码外提7.5.7 强度削弱和归纳变量删除习题第8章 编译系统和运行系统8.1 C语言的编译系统8.1.1 预处理器8.1.2 汇编器8.1.3 连接器8.1.4.目标文件的格式8.1.5 符号解析8.1.6 静态库8.1.7 可执行目标文件及装入8.1.8 动态连接8.1.9 处理目标文件的一些工具8.2 Java语言的运行系统8.2.1 Java虚拟机语言简介8.2.2 Java虚拟机8.2.3 即时编译器习题第9章 面向对象语言的编译9.1 面向对象语言的概念9.1.1 对象和对象类9.1.2 继承9.1.3 信息封装9.2 方法的编译9.3 继承的编译方案9.3.1 单一继承的编译方案9.3.2 多重继承的编译方案习题附录附录1 PL/0语言及其实现附录2 基于PL/0语言的课程实践选题参考文献

章节摘录

  图2.6所示的NFA在状态0,面对输入。时有两种转换,它可以到达状态0或1。类似地,图2.7所示的NFA在状态0,不接受任何输入(即面对8)也有两种转换。有些场合,还会出现既可以根据e也可以根据一个实际输入符号进行转换的情况,这同样也会引起二义性。这种转换函数多值的情况,使得很难用计算机程序模拟NFA。“接受”的定义仅仅是说必须存在从开始状态到某个接受状态的一条路径,该路径的标记正好拼成输入串。这样,在找到一条接受路径或确定没有这样的路径前,可能不得不同时考虑所有路径。  下面给出一个算法,它从NFA构造识别同样语言的DFA,这个算法通常称为子集构造法。一个和它密切相关的算法是第3章构造LR分析器的基础。  首先概述子集构造法的思想。在NFA的转换表里,每个条目是一个状态集;在DFA的转换表中,每个条目只有一个状态。

编辑推荐

  《编译原理与技术》是2009年度普通高等教育精品教材《编译原理》(第2版)的精简版。针对少学时编译原理课程教学而编写。  《编译原理与技术》介绍了基本的编译原理和编译技术,内容包括词法分析、语法分析、语义分析、运行时存储空间的组织和管理、中间代码生成、代码生成和代码优化,还有面向对象语言的编译、编译系统和运行系统等,使读者掌握基本的编译原理与技术,以提高学习编程语言的能力,以及在软件开发中应用编程语言的能力。  《编译原理与技术》取材广泛新颖,图文并茂;强调对编译技术的理解,淡化对相关理论的学习;强调对各种方法的把握,淡化对各个算法的掌握,鼓励读者运用所学的知识去分析和解决实际问题。

图书封面

评论、评分、阅读与下载


    编译原理与技术 PDF格式下载


用户评论 (总计0条)

 
 

 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7