图书介绍

自己动手写编译器、链接器PDF|Epub|txt|kindle电子书版本网盘下载

自己动手写编译器、链接器
  • 王俊博,张宇编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302381365
  • 出版时间:2015
  • 标注页数:342页
  • 文件大小:36MB
  • 文件页数:356页
  • 主题词:C语言-程序设计

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 HelloWorld编译过程分析1

1.1.1 HelloWorld程序源文件1

1.1.2 词法分析2

1.1.3 语法分析3

1.1.4 语义分析3

1.1.5 链接器4

1.2 SCC编译器简介7

1.2.1 SCC编译器架构7

1.2.2 SCC编译器开发环境7

1.2.3 SCC编译器运行环境8

第2章 文法知识10

2.1 语言概述10

2.2 形式语言11

2.2.1 字母表和符号串11

2.2.2 文法与语言的形式定义12

2.2.3 文法与语言的类型13

2.2.4 程序设计语言描述工具15

2.3 词法分析方法16

2.3.1 词法定义例举17

2.3.2 状态转换图17

2.3.3 词法分析程序流程图17

2.4 语法分析方法18

2.4.1 LL分析器18

2.4.2 LL(k)文法19

2.4.3 LL(1)文法19

2.4.4 递归子程序法21

2.4.5 文法的等价变换24

第3章 SC语言定义26

3.1 SC语言的蓝本选择26

3.1.1 K&RC26

3.1.2 C8926

3.1.3 C9927

3.2 SC语言对C89简化原则27

3.3 SC语言的字符集27

3.3.1 基本字符集28

3.3.2 扩展字符集28

3.4 SC语言词法定义29

3.4.1 关键字29

3.4.2 标识符30

3.4.3 整数常量31

3.4.4 字符常量31

3.4.5 字符串常量32

3.4.6 运算符及分隔符32

3.4.7 注释33

3.5 SC语言语法定义33

3.5.1 外部定义33

3.5.2 语句35

3.5.3 表达式39

3.6 SC语言与C语言功能对比46

3.6.1 关键字46

3.6.2 数据类型46

3.6.3 存储类型47

3.6.4 常量47

3.6.5 变量47

3.6.6 函数48

3.6.7 语句48

3.6.8 表达式50

第4章 SC语言词法分析52

4.1 词法分析任务的官方说法52

4.2 单词编码53

4.3 词法分析用到的数据结构55

4.3.1 动态字符串56

4.3.2 动态数组58

4.3.3 哈希表61

4.3.4 单词表62

4.4 错误处理,未雨绸缪67

4.5 词法分析过程72

4.5.1 词法分析主程序72

4.5.2 预处理76

4.5.3 解析标识符79

4.5.4 解析整数80

4.5.5 解析字符串80

4.5.6 词法分析流程图82

4.6 词法着色84

4.7 控制程序85

4.8 词法分析成果展示86

第5章 SC语言语法分析87

5.1 外部定义87

5.1.1 翻译单元87

5.1.2 外部声明88

5.1.3 类型区分符90

5.1.4 结构区分符92

5.1.5 函数调用约定95

5.1.6 结构成员对齐95

5.1.7 声明符96

5.1.8 初值符100

5.2 语句101

5.2.1 复合语句102

5.2.2 表达式语句103

5.2.3 选择语句104

5.2.4 循环语句104

5.2.5 跳转语句105

5.3 表达式107

5.3.1 赋值表达式108

5.3.2 相等类表达式109

5.3.3 关系表达式109

5.3.4 加减类表达式110

5.3.5 乘除类表达式111

5.3.6 一元表达式112

5.3.7 后缀表达式113

5.3.8 初值表达式114

5.4 语法缩进116

5.4.1 用到的全局变量及枚举116

5.4.2 语法缩进程序117

5.5 总控程序118

5.6 成果展示119

第6章 符号表120

6.1 符号表简介121

6.1.1 收集符号属性121

6.1.2 语义的合法性检查122

6.2 符号表用到的主要数据结构123

6.2.1 栈结构123

6.2.2 符号表结构127

6.2.3 数据类型结构132

6.2.4 存储类型133

6.3 符号表的构造过程134

6.3.1 外部声明134

6.3.2 类型区分符137

6.3.3 结构区分符138

6.3.4 声明符144

6.3.5 变量初始化149

6.3.6 复合语句150

6.3.7 sizeof表达式150

6.3.8 初等表达式152

6.4 控制程序153

6.5 成果展示155

第7章 生成COFF目标文件157

7.1 COFF文件结构157

7.1.1 基本概念157

7.1.2 总体结构158

7.1.3 COFF文件头158

7.1.4 节头表161

7.1.5 代码节内容168

7.1.6 数据节与导入节内容168

7.1.7 COFF符号表169

7.1.8 COFF字符串表173

7.1.9 COFF重定位信息173

7.2 生成COFF目标文件175

7.2.1 生成节表176

7.2.2 生成符号表178

7.2.3 生成重定位信息182

7.2.4 生成目标文件183

7.3 成果展示185

第8章 x86机器语言187

8.1 x86机器语言简介187

8.2 通用指令格式188

8.2.1 指令前缀188

8.2.2 操作码190

8.2.3 ModR/M字节190

8.2.4 SIB字节191

8.2.5 偏移量与立即数193

8.3 x86寄存器193

8.3.1 数据寄存器193

8.3.2 变址寄存器193

8.3.3 指针寄存器194

8.3.4 段寄存器194

8.3.5 指令指针寄存器194

8.3.6 标志寄存器195

8.4 指令参考196

8.4.1 符号说明196

8.4.2 数据传送指令198

8.4.3 算术运算指令200

8.4.4 逻辑运算指令203

8.4.5 控制转移指令205

8.4.6 串操作指令208

8.4.7 处理器控制指令208

8.5 生成x86机器语言208

8.5.1 操作数栈209

8.5.2 生成通用指令210

8.5.3 生成数据传送指令213

8.5.4 生成算术与逻辑运算指令217

8.5.5 生成控制转移指令221

8.5.6 寄存器使用224

8.5.7 本章用到的全局变量227

8.6 成果展示227

第9章 SCC语义分析229

9.1 外部定义229

9.1.1 声明与函数定义229

9.1.2 初值符232

9.1.3 函数体234

9.2 语句237

9.2.1 表达式语句237

9.2.2 选择语句238

9.2.3 循环语句239

9.2.4 跳转语句241

9.3 表达式244

9.3.1 赋值表达式244

9.3.2 相等类表达式245

9.3.3 关系表达式246

9.3.4 加减类表达248

9.3.5 乘除类表达式249

9.3.6 一元表达式250

9.3.7 后缀表达式253

9.3.8 初值表达式257

9.4 成果展示259

第10章 链接器261

10.1 链接方式与库文件261

10.2 PE文件格式263

10.2.1 总体结构263

10.2.2 DOS部分264

10.2.3 NT头265

10.2.4 节头表272

10.2.5 代码节272

10.2.6 数据节274

10.2.7 导入节274

10.3 链接器代码实现278

10.3.1 生成PE文件头278

10.3.2 加载目标文件281

10.3.3 加载引入库文件282

10.3.4 解析外部符号285

10.3.5 计算节区的RVA地址288

10.3.6 重定位符号地址291

10.3.7 修正需要重定位的地址292

10.3.8 写PE文件293

10.3.9 生成EXE文件295

10.4 SCC编译器、链接器总控程序297

10.5 成果展示301

10.6 全书代码架构302

第11章 SC语言程序开发304

11.1 SC语言程序开发流程304

11.2 SCC编译器测试程序304

11.2.1 表达式测试304

11.2.2 语句测试308

11.2.3 结构体测试310

11.2.4 函数参数传递测试312

11.2.5 字符串测试314

11.2.6 全局变量测试315

11.3 语言举例316

11.3.1 可接收命令行参数的控制台程序316

11.3.2 可接收命令行参数的Win32应用程序317

11.3.3 HelloWindows窗口程序318

11.3.4 文件复制程序323

11.3.5 九九乘法表325

11.3.6 打印菱形326

11.3.7 屏幕捕捉程序328

参考文献336

附录A SC语言文法定义中英文对照表337

热门推荐