网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 编译原理(21世纪高等院校计算机系列课程教材)
分类 教育考试-大中专教材-成人教育
作者 陈英
出版社 北京理工大学出版社
下载
简介
编辑推荐

编译程序是计算机系统软件的主要组成部分,是计算机科学中发展迅速、系统、成熟的一个分支,其基本原理和技术也适用于一般软件的设计和实现,而且在软件工程、软件自动化、逆向软件工程、再造软件工程等领域有着广泛的应用。

本书旨在介绍编译程序设计的基本原理、实现技术、方法和工具。全书分为10章,

内容推荐

本书系统全面地介绍经典、广泛应用的高级程序设计语言编译程序的结构原理、实现技术、方法和工具。本书包含了现代编译程序设计的基础理论和技术、并在语义分析、代码优化,面向对象语言的编译等方面,反映了20世纪90年代后的一些重要研究成果。本书的组织,注重循序渐进,深入浅出,每章开头提炼了该章涉及的主要内容提要和要点,并提供了编译程序实现的具体实例,每章末尾给出了丰富的练习和思考题,辅助读者更好的掌握编译原理。

本书可以作为计算机学科类专业及相关专业的教材,也可以作为软件技术人员的参考用书。

目录

第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 X机上一遍编译程序

1.5.2 PRIME-550计算机上AHPL语言的两遍编译程序

1.5.3 PDP-11计算机上C语言的三遍编译程序

1.5.4 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 语法分析程序的功能

4.1.2 语法分析方法

 4.2 不确定的自上而下分析方法

4.2.1 一般自上而下分析

4.2.2 不确定性的原因与解决方法

4.2.3 消除回溯

 4.3 递归下降分析法与递归下降分析器

 4.4 LL(1)分析法与IL(1)分析器

4.4.1 LL(1)分析器的逻辑结构与动态实现

4.4.2 LL(1)分析表的构造

4.4.3 关于LL(1)文法

 4.5 移进一归约分析法

4.5.1 移进一归约分析

4.5.2 归约与句柄

 4.6 算符优先分析法与算符优先分析器

4.6.1 直观的算符优先分析法

4.6.2 算符优先文法和优先表的构造

4.6.3 算符优先分析法实现的理论探讨

4.6.4 优先函数表的构造

 4.7 LR分析

4.7.1 LR分析法与LR文法

4.7.2 LR(0)分析及LR(0)分析表的构造

4.7.3 SLR(1)分析及SLR(1)分析表的构造

4.7.4 LR(1)分析及LR(1)分析表的构造

4.7.5 LALR(1)分析及LAL(1)分析表的构造

 4.8 LR分析对二义文法的应用

 4.9 LR分析的错误处理与恢复

 4.10 语法分析程序自动生成器

4.10.1 YACC综述与应用

4.10.2 YACC语言

4.10.3 YACC处理二义文法

4.10.4 YACC的错误恢复

4.10.5 YACC应用

 习题4

第5章 语义分析与中间代码生成

 5.1 语法制导翻译

5.1.1 语法制导定义

5.1.2 综合属性

5.1.3 继承属性

5.1.4 依赖图

5.1.5 S-属性定义与自下而上计算

5.1.6 L属性定义与翻译模式

 5.2 符号表

5.2.1 符号表的组织

5.2.2 分程序结构的符号表

 5.3 类型检查

5.3.1 类型体制

5.3.2 一个简单的类型检查程序

 5.4 中间语言

5.4.1 逆波兰表示法(后缀表示法)

5.4.2 N-元式表示法

 5.5 中间代码生成

5.5.1 说明类语句的翻译

5.5.2 赋值语句与表达式的翻译

5.5.3 控制流语句的翻译

5.5.4 数组说明和数组元素引用的翻译

5.5.5 过程、函数说明和调用的翻译

 习题5

第6章 运行环境

 6.1 程序运行时的存储组织与分配

6.1.1 关于存储组织

6.1.2 过程的活动记录

6.1.3 存储分配策略

 6.2 静态运行时环境与存储分配

 6.3 基于栈的运行时环境的动态存储分配

6.3.1 简单的栈式存储分配的实现

6.3.2 嵌套过程语言的栈式存储分配的实现

 6.4 基于堆的运行时环境的动态存储分配

6.4.1 基于堆的运行时环境的动态存储分配的实现

6.4.2 关于悬空引用

 习题6

第7章 代码优化

 7.1 代码优化概述

7.1.1 代码优化的概念

7.1.2 优化技术分类

7.1.3 优化编译程序的组织

 7.2 局部优化

7.2.1 基本块的定义与划分

7.2.2 程序的控制流图

7.2.3 基本块的DAG表示及应用

 7.3 控制流分析与循环查找

 7.4 数据流分析

7.4.1 程序中的点与通路

7.4.2 到达一定值数据流方程及其方程求解

7.4.3 引用一定值链(ud链)

7.4.4 活跃变量与数据流方程

7.4.5 定值_引用链(du链)与du链数据流方程

7.4.6 可用表达式数据流方程

 7.5 循环优化

7.5.1 代码外提

7.5.2 强度削弱

7.5.3 变换循环控制变量(删除归纳变量)

 习题7

第8章 面向对象语言的翻译

 8.1 面向对象程序设计语言的概念

8.1.1 类与对象

8.1.2 继承性

 8.2 面向对象语言的翻译

8.2.1 简单继承性的编译方案

8.2.2 方法的翻译

8.2.3 多继承的翻译方案

 8.3 面向对象语言中的动态存储

 习题8

第9章 代码生成

 9.1 代码生成器设计中的要点

9.1.1 代码生成器的输入与输出

9.1.2 指令的选择

9.1.3 寄存器分配

9.1.4 存储管理

 9.2 简单的代码生成器模式

 9.3 目标代码的窥孔优化

9.3.1 冗余指令序列

9.3.2 控制流优化

9.3.3 代数化简

9.3.4 窥孔优化实例

 习题9

第10章 编译程序实现范例

 10.1 PL/0语言描述

10.1.1 PL/0语言文法的:EBNF表示

10.1.2 PL/0语言的语法图描述

 10.2 PL/0编译程序的结构

 10.3 PL/0编译程序的词法分析

 10.4 PL/0编译程序的语法分析

 10.5 PL/0编译程序的目标代码结构和代码生成

 10.6 PL/0编译程序的语法错误处理

 10.7 PL/0编译程序的目标代码解释执行时的存储分配

 10.8 PL/0编译程序文本

 习题10

随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/4/7 7:51:48