图书介绍

编译技术原理pdf电子书版本下载

编译技术原理
  • 姜文清编 著
  • 出版社: 北京:国防工业出版社
  • ISBN:7118011363
  • 出版时间:1994
  • 标注页数:301页
  • 文件大小:13MB
  • 文件页数:311页
  • 主题词:

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
下载压缩包 [复制下载地址] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页

下载说明

编译技术原理PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一章 引论 1

§1.1概述 1

第一章 引论 1

§1.1概述 1

§1.2 编译程序的构造 2

1.2.1 分析 2

§1.2 编译程序的构造 2

1.2.1 分析 2

1.2.3 错误的检查与恢复 5

1.2.2 符号表 5

1.2.2 符号表 5

1.2.3 错误的检查与恢复 5

1.2.4 综合 6

1.2.4 综合 6

§1.3 编译的预处理和后续处理 8

1.3.1预处理 8

§1.3 编译的预处理和后续处理 8

1.3.1预处理 8

1.3.3装入和连接 9

1.3.2 汇编 9

1.3.2 汇编 9

1.3.3装入和连接 9

§1.4 编译的遍 10

§1.4 编译的遍 10

§2.1 算术表达式的文法 11

2.1.1 语法图和语法结构树 11

2.1.1 语法图和语法结构树 11

§2.1 算术表达式的文法 11

第二章 简单的编译程序设计 11

第二章 简单的编译程序设计 11

2.1.2 上下文无关文法和语法树 12

2.1.2 上下文无关文法和语法树 12

§2.2 语法分析程序设计 15

2.2.1 确定的递归下降法 15

§2.2 语法分析程序设计 15

2.2.1 确定的递归下降法 15

2.2.2 确定的递归下降分析程序 17

2.2.2 确定的递归下降分析程序 17

§2.3 关于语义的形式描述 20

§2.3 关于语义的形式描述 20

§2.4 关于翻译的形式描述 22

§2.4 关于翻译的形式描述 22

§2.5 简单表达式求值 26

§2.5 简单表达式求值 26

2.6.1 标识符的识别 29

§2.6 词汇的识别 29

§2.6 词汇的识别 29

2.6.1 标识符的识别 29

2.6.2 数的识别 32

2.6.2 数的识别 32

2.6.3 词法分析程序 33

2.6.3 词法分析程序 33

§2.7 语法结构树的建立 34

§2.7 语法结构树的建立 34

第三章 词法分析 40

§3.1 概述 40

§3.1 概述 40

第三章 词法分析 40

§3.2 词汇、模式和词形 42

§3.2 词汇、模式和词形 42

§3.3 输入缓冲 43

§3.3 输入缓冲 43

§3.4 正规表达式 45

3.4.1 串和语言 45

3.4.1 串和语言 45

§3.4 正规表达式 45

3.4.2 正规表达式 47

3.4.2 正规表达式 47

3.4.3 正规定义 48

3.4.3 正规定义 48

§3.5 词法分析程序设计 49

3.5.1 词法分析器的规格说明 49

§3.5 词法分析程序设计 49

3.5.2 状态转换图 50

3.5.2 状态转换图 50

3.5.3 状态转换图的实现 53

3.5.3 状态转换图的实现 53

§3.6 软件工具Lex 56

3.6.1 Lex规格说明 56

§3.6 软件工具Lex 56

3.6.1 Lex规格说明 56

3.6.2 向前查看 59

3.6.2 向前查看 59

3.7.1 非确定的有穷自动机(NFA) 60

§3.7 有穷自动机 60

§3.7 有穷自动机 60

3.7.1 非确定的有穷自动机(NFA) 60

3.7.3 从NFA到DFA的转换 62

3.7.2 确定的有穷自动机(DFA) 62

3.7.2 确定的有穷自动机(DFA) 62

3.7.3 从NFA到DFA的转换 62

3.7.4 由正规表达式构造NFA 65

3.7.4 由正规表达式构造NFA 65

3.7.5 由正规表达式构造DFA 67

3.7.5 由正规表达式构造DFA 67

3.7.6 DFA的化简 72

3.7.6 DFA的化简 72

§4.1 概述 75

第四章 语法分析 75

第四章 语法分析 75

§4.1 概述 75

§4.2 上下文无关文法 76

4.2.1 上下文无关文法的定义 76

§4.2 上下文无关文法 76

4.2.1 上下文无关文法的定义 76

4.2.2 推导和语法树 77

4.2.2 推导和语法树 77

4.2.3 文法的二义性 79

4.2.3 文法的二义性 79

4.2.4 非上下文无关语言 81

4.2.4 非上下文无关语言 81

4.3.1 自顶向下分析法对文法的限制 82

§4.3 自顶向下分析的共同问题 82

4.3.1 自顶向下分析法对文法的限制 82

§4.3 自顶向下分析的共同问题 82

4.3.2 首符号集和后随符号集 83

4.3.2 首符号集和后随符号集 83

§4.4 LL(1)分析法 85

§4.4 LL(1)分析法 85

4.4.1 LL(1)文法 85

4.4.1 LL(1)文法 85

4.4.2 LL(1)分析器 86

4.4.2 LL(1)分析器 86

4.4.3 LL(1)分析的错误恢复 88

4.4.3 LL(1)分析的错误恢复 88

4.4.4 LL(1)分析表的构造 90

4.4.4 LL(1)分析表的构造 90

§4.5 自底向上分析的共同问题 93

§4.5 自底向上分析的共同问题 93

4.6.1 算符优先文法 95

§4.6 算符优先分析法 95

§4.6 算符优先分析法 95

4.6.1 算符优先文法 95

4.6.2 算符优先分析算法 97

4.6.2 算符优先分析算法 97

4.6.3 优先函数 99

4.6.3 优先函数 99

§4.7 LR分析法 100

4.7.1 LR分析器 100

§4.7 LR分析法 100

4.7.1 LR分析器 100

4.7.2 LR(0)分析表 104

4.7.2 LR(0)分析表 104

4.7.3 SLR分析表 108

4.7.3 SLR分析表 108

4.7.4 规范LR分析表 114

4.7.4 规范LR分析表 114

4.7.5 LALR分析表 119

4.7.5 LALR分析表 119

4.7.6 二义性文法的处理 126

4.7.6 二义性文法的处理 126

4.7.7 LR分析的错误恢复 129

4.7.7 LR分析的错误恢复 129

§4.8 软件工具Yacc 131

§4.8 软件工具Yacc 131

第五章 语法制导翻译 136

§5.1 语法制导定义 136

第五章 语法制导翻译 136

§5.1 语法制导定义 136

§5.2 属性的依赖关系 137

5.2.1 综合属性 137

§5.2 属性的依赖关系 137

5.2.1 综合属性 137

5.2.2 继承属性 138

5.2.2 继承属性 138

5.2.3 属性的依赖关系图 139

5.2.3 属性的依赖关系图 139

§5.3 语法结构树 141

§5.3 语法结构树 141

§5.4 S属性定义的求值 145

§5.4 S属性定义的求值 145

§5.5 L属性定义与翻译规程 147

§5.5 L属性定义与翻译规程 147

5.6.1 消除翻译规程中的左递归 150

§5.6 自顶向下翻译 150

§5.6 自顶向下翻译 150

5.6.1 消除翻译规程中的左递归 150

5.6.2 自顶向下翻译器的设计 154

5.6.2 自顶向下翻译器的设计 154

§5.7 L属性定义的求值 156

§5.7 L属性定义的求值 156

§5.8 属性值的存储与生存期 160

§5.8 属性值的存储与生存期 160

第六章 类型检查 168

§6.1 类型系统 168

第六章 类型检查 168

§6.1 类型系统 168

§6.2 类型检查器的规格说明 171

§6.2 类型检查器的规格说明 171

6.2.1 表达式的类型检查 172

6.2.1 表达式的类型检查 172

6.2.2 语句的类型检查 173

6.2.3 函数的类型检查 173

6.2.3 函数的类型检查 173

6.2.2 语句的类型检查 173

§6.3 类型表达式的等价性 174

6.3.1类型表达式的结构等价 174

§6.3 类型表达式的等价性 174

6.3.1类型表达式的结构等价 174

6.3.2 类型表达式的名称等价 176

6.3.2 类型表达式的名称等价 176

6.3.3 指针类型的循环定义 178

6.3.3 指针类型的循环定义 178

§6.4 类型转换 179

§6.4 类型转换 179

§6.5 函数和运算符的重载 181

§6.5 函数和运算符的重载 181

§7.1 中间语言 183

7.1.1图表示法 183

§7.1 中间语言 183

第七章 中间代码生成 183

7.1.1图表示法 183

第七章 中间代码生成 183

7.1.2 三地址代码 184

7.1.2 三地址代码 184

§7.2 关于说明的翻译 189

§7.2 关于说明的翻译 189

7.2.2 过程说明 190

7.2.1 变量说明 190

7.2.1 变量说明 190

7.2.2 过程说明 190

7.3.1 简单变量的访问 193

§7.3 赋值语句的翻译 193

7.3.1 简单变量的访问 193

7.2.3 记录说明 193

§7.3 赋值语句的翻译 193

7.2.3 记录说明 193

7.3.2 数组元素和记录的访问 196

7.3.2 数组元素和记录的访问 196

§7.4 布尔表达式的翻译 200

§7.4 布尔表达式的翻译 200

7.4.1 数值表示法 201

7.4.1 数值表示法 201

7.4.2 控制流表示法 202

7.4.2 控制流表示法 202

§7.5 CASE语句的翻译 205

§7.5 CASE语句的翻译 205

7.6.1 布尔表达式的翻译技术 208

§7.6 回填技术 208

§7.6 回填技术 208

7.6.1 布尔表达式的翻译技术 208

7.6.2 控制流语句 212

7.6.2 控制流语句 212

§7.7 过程调用 214

§7.7 过程调用 214

第八章 运行环境 216

§8.1 过程的活动态 216

§8.1 过程的活动态 216

第八章 运行环境 216

§8.2 存储器组织 220

§8.2 存储器组织 220

8.2.1 运行时存储器的划分 221

8.2.2 活动记录 221

8.2.2 活动记录 221

8.2.1 运行时存储器的划分 221

8.2.3 编译时局部数据的表示 222

8.2.3 编译时局部数据的表示 222

§8.3 存储分配策略 223

§8.3 存储分配策略 223

8.3.1 静态存储分配 224

8.3.1 静态存储分配 224

8.3.2 栈存储分配 226

8.3.2 栈存储分配 226

8.3.3 堆存储分配 229

8.3.3 堆存储分配 229

§8.4 非局部名称的访问 230

8.4.1 分程序 230

§8.4 非局部名称的访问 230

8.4.1 分程序 230

8.4.2 非嵌套过程的静态作用域 232

8.4.2 非嵌套过程的静态作用域 232

8.4.3 嵌套过程的静态作用域 233

8.4.3 嵌套过程的静态作用域 233

§8.5 参数传递 237

§8.5 参数传递 237

8.5.1 传值 237

8.5.1 传值 237

8.5.3 传值结果 239

8.5.2 传地址 239

8.5.3 传值结果 239

8.5.2 传地址 239

8.5.4传名 240

§8.6 符号表 240

8.5.4传名 240

§8.6 符号表 240

8.6.1 符号表项 241

8.6.1 符号表项 241

8.6.2 符号表的数据结构 242

8.6.2 符号表的数据结构 242

8.6.3 符号表中的作用域信息 243

8.6.3 符号表中的作用域信息 243

§8.7 动态存储分配 245

8.7.1 动态存储分配的语言设施 245

§8.7 动态存储分配 245

8.7.1 动态存储分配的语言设施 245

8.7.2 动态存储分配技术 247

8.7.2 动态存储分配技术 247

8.7.3 隐式存储回收 248

8.7.3 隐式存储回收 248

第九章 代码优化 251

9.1.1 程序优化 251

§9.1 概述 251

第九章 代码优化 251

9.1.1 程序优化 251

§9.1 概述 251

9.1.2 代码优化器的结构 252

9.1.2 代码优化器的结构 252

9.2.1 基本块及其划分 253

§9.2 基本块与控制流图 253

9.2.1 基本块及其划分 253

§9.2 基本块与控制流图 253

9.2.2 控制流图 254

9.2.2 控制流图 254

§9.3 基本块的优化 255

§9.3 基本块的优化 255

§9.4 局部优化 257

9.4.1 冗余的公共表达式 257

§9.4 局部优化 257

9.4.1 冗余的公共表达式 257

9.4.2 重复传送 258

9.4.2 重复传送 258

9.4.3 删除死块 259

9.4.4 循环优化 259

§9.5 循环优化 259

9.5.1 代码外移 259

9.5.2 归纳变量 259

9.5.1 代码外移 259

9.4.4 循环优化 259

§9.5 循环优化 259

9.5.2 归纳变量 259

9.4.3 删除死块 259

9.5.3 削弱计算强度 260

9.5.3 削弱计算强度 260

10.1.1 地址映射 262

10.1.1 地址映射 262

§10.1 代码生成器的设计要点 262

第十章 目标代码生成 262

§10.1 代码生成器的设计要点 262

第十章 目标代码生成 262

10.1.2 指令的选择 263

10.1.2 指令的选择 263

10.1.5 代码生成器的设计 264

10.1.3 寄存器的分配 264

10.1.4 求值顺序的选择 264

10.1.5 代码生成器的设计 264

§10.2 目标机器 264

10.1.4 求值顺序的选择 264

10.1.3 寄存器的分配 264

§10.2 目标机器 264

§10.3 运行时的存储管理 266

§10.3 运行时的存储管理 266

10.3.1 静态存储分配 267

10.3.1 静态存储分配 267

10.3.2 栈存储分配 268

10.3.2 栈存储分配 268

§10.4 名称的引用信息 271

10.3.3 运行时名称的地址 271

10.3.3 运行时名称的地址 271

§10.4 名称的引用信息 271

§10.5 简单的代码生成器 272

§10.5 简单的代码生成器 272

10.5.1 代码生成算法 273

10.5.1 代码生成算法 273

10.5.2 函数getreg 274

10.5.2 函数getreg 274

10.5.3 其它语句的代码生成 275

10.5.3 其它语句的代码生成 275

§10.6 窥孔优化 277

10.6.1 冗余传送 277

§10.6 窥孔优化 277

10.6.1 冗余传送 277

10.6.2 死代码 278

10.6.3 控制流优化 278

10.6.3 控制流优化 278

10.6.2 死代码 278

习题 280

习题 280

实验题 296

实验题 296

参考文献 301

参考文献 301

精品推荐