图书介绍

WebAssembly标准入门pdf电子书版本下载

WebAssembly标准入门
  • 柴树杉,丁尔男著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115500595
  • 出版时间:2019
  • 标注页数:194页
  • 文件大小:14MB
  • 文件页数:211页
  • 主题词:编译软件

PDF下载


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

下载说明

WebAssembly标准入门PDF格式电子书版下载

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

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

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

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

图书目录

第0章 WebAssembly诞生背景 1

0.1 JavaScript简史 1

0.2 asm.js的尝试 2

0.3 WebAssembly的救赎 5

第1章 JavaScript语言基础 7

1.1 console对象 7

1.2函数和闭包 9

1.3 Promise对象 12

1.4二进制数组 13

第2章 WebAssembly快速入门 17

2.1准备工作 17

2.1.1 WebAssembly兼容性 17

2.1.2 WebAssembly文本格式与wabt工具集 19

2.2首个例程 21

2.3 WebAssembly概览 22

2.3.1 WebAssembly中的关键概念 23

2.3.2 WebAssembly程序生命周期 24

2.3.3 WebAssembly虚拟机体系结构 25

2.4你好,WebAssembly 25

2.4.1 WebAssembly部分 26

2.4.2 JavaScript部分 27

2.5 WebAssembly调试及代码编辑环境 28

第3章 JavaScript中的WebAssembly对象 31

3.1 WebAssembly对象简介 31

3.2全局方法 32

3.2.1 WebAssembly.compile() 32

3.2.2 WebAssembly.instantiate() 33

3.2.3 WebAssembly.validate() 34

3.2.4 WebAssembly.compileStreaming() 35

3.2.5 WebAssembly.instantiateStreaming() 35

3.3 WebAssembly.Module对象 36

3.3.1 WebAssembly.Module() 36

3.3.2 WebAssembly.Module.exports() 37

3.3.3 WebAssembly.Module.imports() 38

3.3.4 WebAssembly.Module.customSections() 39

3.3.5缓存Module 40

3.4 WebAssembly.Instance对象 41

3.4.1 WebAssembly.Instance() 41

3.4.2 WebAssembly.Instance.prototype.exports 42

3.4.3创建WebAssembly.Instance的简洁方法 43

3.5 WebAssembly.Memory对象 44

3.5.1 WebAssembly.Memory() 44

3.5.2 WebAssembly.Memory.prototype.buffer 44

3.5.3 WebAssembly.Memory.prototype.grow() 47

3.6 WebAssembly.Table对象 50

3.6.1 WebAssembly.Table() 51

3.6.2 WebAssembly.Table.prototype.get() 52

3.6.3 WebAssembly.Table.prototype.length 54

3.6.4在WebAssembly内部使用表格 55

3.6.5多个实例通过共享表格及内存协同工作 57

3.6.6 WebAssembly.Table.prototype.set() 60

3.6.7 WebAssembly.Table.prototype.grow() 61

3.7小结及错误类型 61

第4章 WebAssembly汇编语言 65

4.1 S-表达式 65

4.2数据类型 66

4.3函数定义 67

4.3.1函数签名 67

4.3.2局部变量表 68

4.3.3函数体 68

4.3.4函数别名 68

4.4变量 69

4.4.1参数与局部变量 69

4.4.2变量别名 70

4.4.3全局变量 70

4.5栈式虚拟机 72

4.5.1栈 72

4.5.2 WebAssembly栈式虚拟机 72

4.5.3栈式调用 73

4.6函数调用 75

4.6.1直接调用 75

4.6.2间接调用 76

4.6.3递归 78

4.7内存读写 79

4.7.1内存初始化 79

4.7.2读取内存 80

4.7.3写入内存 81

4.7.4获取内存容量及内存扩容 82

4.8控制流 83

4.8.1 nop和unreachable 83

4.8.2 block指令块 83

4.8.3 if指令块 85

4.8.4 loop指令块 86

4.8.5指令块的label索引及嵌套 86

4.8.6 br 87

4.8.7 br_if 89

4.8.8 return 90

4.8.9 br_table 90

4.9导入和导出 91

4.9.1导出对象 91

4.9.2导入对象 93

4.10 start()函数及指令折叠 96

4.10.1 start()函数 96

4.10.2指令折叠 97

第5章 WebAssembly二进制格式 99

5.1 LEB128编码 99

5.1.1 LEB128编码原理 99

5.1.2无符号数的LEB128编码 100

5.1.3有符号数的LEB128编码 101

5.2头部和段数据 101

5.2.1头部 101

5.2.2段类型列表 101

5.2.3段数据结构 102

5.3内存段和数据段 104

5.3.1内存段 104

5.3.2数据段 105

5.4表格段和元素段 106

5.4.1表格段 107

5.4.2元素段 108

5.5开始段和函数索引 108

5.5.1开始段 109

5.5.2函数索引 110

5.6全局段 111

5.6.1全局变量索引 111

5.6.2全局段编码方式 112

5.7函数段、代码段和类型段 113

5.7.1函数段、代码段和类型段之间的关系 113

5.7.2更简单的例子 114

5.7.3函数段 115

5.7.4类型段 116

5.7.5代码段 117

5.8导入段和导出段 118

5.8.1例子 118

5.8.2类型段 119

5.8.3导入段 119

5.8.4导出段 120

5.9自定义段 121

5.9.1自定义段结构 122

5.9.2模块的名字 122

5.9.3全局变量的名字 123

5.9.4函数的名字 124

5.9.5局部变量的名字 124

5.10补充说明 126

第6章 Emscripten和WebAssembly 127

6.1安装环境 127

6.1.1 emsdk命令安装 127

6.1.2 Docker环境安装 128

6.1.3验证emcc命令 129

6.2你好,Emscripten! 129

6.2.1生成wasm文件 130

6.2.2浏览器环境 130

6.2.3自动生成HTML测试文件 132

6.3 C/C++内联JavaScript代码 133

6.3.1 EM_ASM宏 133

6.3.2 EM_ASM_宏 134

6.3.3 EM_ASM_*宏 135

6.3.4函数参数 137

6.3.5注意问题 138

6.4 C/C++调用JavaScript函数 139

6.4.1 C语言版本的eval()函数 139

6.4.2打造带参数的eval()函数 141

6.4.3打造可变参数的eval()函数 143

6.4.4 eval()函数返回字符串 146

6.5 JavaScript调用C导出函数 149

6.5.1调用导出函数 149

6.5.2辅助函数ccall()和cwrap() 152

6.6运行时和消息循环 155

6.6.1 Emscripten运行时 155

6.6.2消息循环 158

6.7补充说明 162

第7章 Go语言和WebAssembly 163

7.1你好,Go语言 163

7.2浏览器中的Go语言 166

7.3使用JavaScript函数 168

7.4回调Go函数 170

7.5 syscall/js包 172

7.6 WebAssembly模块的导入函数 175

7.7 WebAssembly虚拟机 178

7.8补充说明 180

附录 指令参考 181

精品推荐