图书介绍

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

编译技术
  • 周尔强,周帆,韩蒙,陈文宇编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111509110
  • 出版时间:2015
  • 标注页数:224页
  • 文件大小:76MB
  • 文件页数:234页
  • 主题词:编译程序-程序设计-高等学校-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

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

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

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

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

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

图书目录

第1章 编译概述 1

1.1 编译器与解释器 1

1.2 编译器的组织与结构 2

1.2.1 词法分析 2

1.2.2 语法分析 4

1.2.3 语义分析 4

1.2.4 代码生成与优化 5

1.2.5 符号表管理及错误处理 6

1.3 总结与展望 6

1.4 习题 7

第2章 实现一个简单编译器 8

2.1 语言定义 8

2.1.1 词法定义 9

2.1.2 语法定义 9

2.2 简单编译器的结构 12

2.3 词法分析 12

2.4 递归下降语法解析 20

2.4.1 规则的程序实现 20

2.4.2 预测所选的规则 22

2.5 抽象语法树 23

2.6 语义分析 26

2.6.1 符号表 26

2.6.2 类型检查与转换 28

2.7 中间代码生成 30

2.7.1 三地址代码 30

2.7.2 树的遍历与代码生成 31

2.8 习题 34

第3章 词法分析器 35

3.1 词法分析器概述 35

3.2 单词的识别 36

3.3 状态转换图 38

3.4 正则表达式 44

3.4.1 字母表的概念 44

3.4.2 正则表达式的形式化定义 45

3.5 有限状态自动机与词法分析器 46

3.5.1 确定的有限状态自动机 47

3.5.2 正则表达式到有限状态自动机的转换 47

3.5.3 词法分析器的自动机实现 53

3.6 词法分析器的自动生成 55

3.6.1 Lex中的单词符号定义 56

3.6.2 Lex中的字符处理 57

3.6.3 其他工具简介 60

3.7 习题 61

第4章 文法与语法解析 62

4.1 文法和语法的定义 62

4.1.1 文法的定义 62

4.1.2 上下文无关文法 64

4.1.3 推导与规约 65

4.1.4 语法树 68

4.2 自上而下的语法分析 70

4.2.1 左递归的消除 74

4.2.2 提取公共左因子 76

4.2.3 递归下降分析法 77

4.2.4 表驱动的预测分析法 82

4.3 自下而上的语法分析 89

4.3.1 LR分析过程 91

4.3.2 LR (0)分析表的构造 95

4.3.3 SLR(1)分析表的构造 101

4.4 语法解析相关工具 104

4.4.1 YACC 104

4.4.2 ANTLR 107

4.5 习题 108

第5章 语义分析 110

5.1 语义分析概况 110

5.1.1 语义分析的功能 111

5.1.2 语义分析方法 111

5.2 构建抽象语法树 113

5.2.1 单一类型语法树的设计 114

5.2.2 多类型语法树的设计 115

5.2.3 多类型语法树的遍历 117

5.3 符号表 119

5.3.1 符号表的数据结构 120

5.3.2 哈希符号表的实现 122

5.3.3 分程序结构的作用域 124

5.3.4 分程序结构符号表的实现 125

5.4 说明语句分析 126

5.4.1 简单变量声明 126

5.4.2 结构类型的声明 127

5.5 赋值语句分析 128

5.6 控制语句分析 129

5.6.1 if语句 130

5.6.2 while语句 132

5.6.3 for语句 133

5.6.4 过程调用语句 134

5.7 习题 135

第6章 LLVM代码生成与优化 137

6.1 LLV M系统 137

6.1.1 LLVM框架设计理念 137

6.1.2 LLVM中间代码表示 139

6.1.3 LLVM代码示例分析 140

6.1.4 LLVM工具集 145

6.2 LLVM代码生成 148

6.2.1 常量、局部变量的代码生成 148

6.2.2 表达式的代码生成 150

6.2.3 函数声明与调用 152

6.3 优化概述 156

6.4 基本块与流图 157

6.4.1 基本块 157

6.4.2 程序流图 158

6.5 基本块内的优化 159

6.6 循环优化 160

6.6.1 必经结点 161

6.6.2 回边及循环的查找 162

6.6.3 循环的优化 162

6.7 习题 166

第7章 运行时存储空间的组织与分配 168

7.1 存储组织 168

7.1.1 运行时内存的划分 168

7.1.2 活动记录 169

7.1.3 存储分配策略 170

7.1.4 变量的存储分配 170

7.2 栈式分配 172

7.2.1 只含半静态变量的栈式分配 172

7.2.2 半动态变量的栈式分配 174

7.3 嵌套子程序的存储组织 175

7.4 参数传递方式 178

7.4.1 参数传递的语义模型 178

7.4.2 参数传递的实现模型 179

7.5 习题 180

第8章 LCC语言编译程序的实现 183

8.1 LCC语言简介 183

8.2 词法分析 184

8.3 语法分析 187

8.3.1 LCC语言文法说明 187

8.3.2 YACC与Lex之间的约定 190

8.3.3 抽象语法树结点设计 191

8.3.4 构建抽象语法树 192

8.3.5 文法动作说明 195

8.4 语义分析 198

8.4.1 符号表的实现 198

8.4.2 语义检查 202

8.4.3 数组设计与检查 202

8.5 中间代码生成 204

8.5.1 LLVM代码生成接口 204

8.5.2 LCC语言的代码生成框架 207

8.5.3 表达式的代码生成 209

8.5.4 输入输出语句的代码生成 213

8.6 LCC语言代码运行测试 217

8.6.1 变量作用域测试 217

8.6.2 控制语句测试 218

8.6.3 整型数组测试 220

8.6.4 字符串数组测试 221

8.7 习题 222

附录 缩略语 223

参考文献 224

精品推荐