登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書

『簡體書』WebAssembly原理与核心技术

書城自編碼: 3558694
分類:簡體書→大陸圖書→計算機/網絡程序設計
作者: 张秀宏
國際書號(ISBN): 9787111665540
出版社: 机械工业出版社
出版日期: 2020-10-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:HK$ 104.3

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
别害怕吵架:教孩子在冲突中学会正向沟通
《 别害怕吵架:教孩子在冲突中学会正向沟通 》

售價:HK$ 58.8
这个甜甜圈不能卖:奇思妙想爆笑绘本(全2册)
《 这个甜甜圈不能卖:奇思妙想爆笑绘本(全2册) 》

售價:HK$ 95.8
生活中的民法典实用全书:应知应懂的法律常识
《 生活中的民法典实用全书:应知应懂的法律常识 》

售價:HK$ 106.8
饲渊
《 饲渊 》

售價:HK$ 47.8
现金为王:把利润留下来,把成本降下去
《 现金为王:把利润留下来,把成本降下去 》

售價:HK$ 82.8
经纬度丛书·巴勒斯坦人的故事:流亡者的悲情、绝望与抗争
《 经纬度丛书·巴勒斯坦人的故事:流亡者的悲情、绝望与抗争 》

售價:HK$ 105.6
改变世界的哲学家们
《 改变世界的哲学家们 》

售價:HK$ 105.6
将军
《 将军 》

售價:HK$ 57.6

 

編輯推薦:
(1)作者是资深的WebAssembly技术专家,对WebAssembly的规范、源代码、核心技术都有非常深入的研究,而且在Web开发、游戏和区块链领域有丰富的实践经验。
(2)作者是资深的虚拟机技术专家,对Java、Go和Lua等语言及其虚拟机有非常深入的研究,撰写了《自己动手写Java虚拟机》和《自己动手实现Lua:虚拟机、编译器、标准库》。
(3)本书从工作原理、核心技术和规范3个维度全面解读WebAssembly,同时给出具体实现思路和代码
內容簡介:
WebAssembly是栈式虚拟机和字节码技术的*应用,在Web开发、后端开发、区块链等领域大显身手,越来越受欢迎。

本书是WebAssembly入门和进阶的必读书,它不仅对WebAssembly的工作原理、核心技术和规范进行了全面的剖析和解读,而且给出了实现WebAssembly解释器和AOT编译器的思路和代码。

本书共14章,分为四个部分:

第1部分 WebAssembly概述(第1章)
主要介绍了WebAssembly的概念、发展历史以及阅读本书需要做的准备工作。WebAssembly是栈式虚拟机和字节码技术的*应用,在Web开发、后端开发、区块链等领域大显身手,越来越受欢迎。
本书是WebAssembly入门和进阶的必读书,它不仅对WebAssembly的工作原理、核心技术和规范进行了全面的剖析和解读,而且给出了实现WebAssembly解释器和AOT编译器的思路和代码。
本书共14章,分为四个部分:
第1部分 WebAssembly概述(第1章)
主要介绍了WebAssembly的概念、发展历史以及阅读本书需要做的准备工作。
第2部分 二进制和文本格式(第2~4章)
详细讲解了WebAssembly的二进制格式、文本格式以及指令集。
第3部分 虚拟机和解释器(第5~11章)
详细讲解了WebAssembly的解释器和虚拟机的工作原理以及实现思路,包括操作数栈、内存、函数调用、控制指令、链接和实例化、错误处理和验证等。
第4部分 WebAssembly进阶(第12~14章)
深入地讲解了AOT编译器的实现思路和WebAssembly的提案等内容。
通过阅读本书,读者不仅可以理解WebAssembly核心原理,还可以学习如何实现WebAssembly解释器和AOT编译器。即收获了鱼,又学会了渔。
關於作者:
张秀宏
资深服务器开发工程师,在游戏服务器、区块链等领域有多年的开发和架构经验。曾在EA、乐元素、比特大陆等公司担任高级服务器工程师,对Java、Go、Lua等语言以及高级语言虚拟机有非常深入的研究。
曾独立撰写畅销书《自己动手写Java虚拟机》和《自己动手实现Lua:虚拟机、编译器、标准库》,广受读者好评。《WebAssembly原理与核心技术》是作者在高级语言虚拟机领域的又一力作。
目錄
【第一部分 概述】
第1章  Wasm介绍 3
1.1 Wasm简史 3
1.2 Wasm简介 6
1.3 准备工作 10
1.4 你好Wasm 11
1.5 本章小结 13

【第二部分 二进制和文本格式】
第2章 二进制格式 17
2.1 二进制格式介绍 17
2.1.1 Wasm二进制格式总体结构 18
2.1.2 索引空间 21
2.1.3 实体类型 23
2.2 二进制格式分析 25
2.2.0 魔数和版本号 25
2.2.1 类型段 26
2.2.2 导入段 28
2.2.3 函数段 30
2.2.4 表段 30
2.2.5 内存段 31
2.2.6 全局段 32
2.2.7 导出段 33
2.2.8 起始段 34
2.2.9 元素段 35
2.2.10 代码段 35
2.2.11 数据段 37
2.2.12 自定义段 38
2.3 二进制格式解码 39
2.3.1 LEB128介绍 39
2.3.2 解码基本类型 41
2.3.3 解码向量类型 44
2.3.4 处理tag 44
2.3.5 解码代码项和表达式 45
2.3.6 解码整体结构 45
2.3.7 处理错误情况 47
2.4 实现dump命令 48
2.5 本章小结 50

第3章 指令集 51
3.1 指令集介绍 51
3.1.1 操作码 51
3.1.2 助记符 53
3.1.3 立即数 54
3.1.4 操作数 57
3.2 指令分析 58
3.2.1 数值指令 58
3.2.2 变量指令 60
3.2.3 内存指令 61
3.2.4 结构化控制指令 62
3.2.5 跳转指令 64
3.2.6 函数调用指令 65
3.3 指令解码 66
3.4 完善dump命令 69
3.5 本章小结 70

第4章 文本格式 71
4.1 基本结构 71
4.1.1 类型域 72
4.1.2 导入和导出域 73
4.1.3 函数域 75
4.1.4 表域和元素域 75
4.1.5 内存域和数据域 76
4.1.6 全局域 77
4.1.7 起始域 77
4.2 指令 78
4.2.1 普通形式 78
4.2.2 折叠形式 79
4.3 本章小结 81

【第三部分 虚拟机和解释器】
第5章 操作数栈 85
5.1 操作数栈 85
5.2 虚拟机 87
5.2.1 指令循环 88
5.2.2 指令分派 88
5.3 参数指令 89
5.3.1 drop指令 90
5.3.2 select指令 90
5.4 数值指令 91
5.4.1 常量指令 92
5.4.2 测试指令 92
5.4.3 比较指令 93
5.4.4 一元算术指令 95
5.4.5 二元算术指令 96
5.4.6 类型转换指令 99
5.5 本章效果 103
5.6 本章小结 105

第6章 内存 107
6.1 内存介绍 107
6.2 内存实现 108
6.3 内存指令 109
6.3.1 size和grow指令 110
6.3.2 加载指令 111
6.3.3 存储指令 113
6.4 本章效果 115
6.5 本章小结 117

第7章 函数调用(上) 119
7.1 函数调用介绍 119
7.2 函数调用实现 122
7.2.1 增强操作数栈 123
7.2.2 添加调用栈 124
7.2.3 增强虚拟机 126
7.2.4 call指令 127
7.3 局部变量指令 129
7.3.1 local.get指令 130
7.3.2 local.set指令 130
7.3.3 local.tee指令 131
7.4 全局变量指令 132
7.4.1 global.get指令 132
7.4.2 global.set指令 133
7.5 本章效果 134
7.6 本章小结 135

第8章 控制指令 137
8.1 控制指令介绍 137
8.1.1 跳转标签 138
8.1.2 跳转标签索引 139
8.1.3 块类型 141
8.2 控制指令实现 142
8.2.1 block和loop指令 142
8.2.2 if指令 144
8.2.3 br指令 146
8.2.4 br_if指令 148
8.2.5 br_table指令 149
8.2.6 return指令 150
8.2.7 unreachable和nop指令 151
8.3 本章效果 152
8.4 本章小结 153

第9章 函数调用(下) 155
9.1 本地函数调用 155
9.1.1 本地函数介绍 155
9.1.2 统一两种函数 158
9.1.3 调用本地函数 159
9.1.4 链接本地函数 161
9.1.5 测试本节代码 162
9.2 间接函数调用 163
9.2.1 间接函数调用介绍 163
9.2.2 实现表 165
9.2.3 初始化表 166
9.2.4 call_indirect指令 167
9.2.5 测试本节代码 168
9.3 本章小结 169

第10章 链接和实例化 171
10.1 定义实例接口 171
10.2 实现实例接口 174
10.2.1 函数 174
10.2.2 表 176
10.2.3 全局变量 177
10.2.4 虚拟机 177
10.3 实例化模块 178
10.4 本章效果 180
10.5 本章小结 183

第11章 错误处理和验证 185
11.1 各种错误 186
11.1.1 解码错误 186
11.1.2 结构错误 188
11.1.3 实例化错误 189
11.1.4 运行时错误 190
11.2 验证整体结构 190
11.3 验证函数字节码 192
11.3.1 数据结构 193
11.3.2 操作数栈 194
11.3.3 控制栈 195
11.3.4 验证指令 197
11.4 本章效果 198
11.5 本章小结 199

【第四部分 进阶】
第12章 编译为Wasm 203
12.1 控制指令 203
12.2 参数指令 207
12.3 变量指令 208
12.4 内存指令 210
12.5 数值指令 213
12.6 本章小结 215

第13章 AOT编译器 217
13.1 AOT介绍 217
13.2 编译模块 219
13.3 编译函数 220
13.3.1 内部函数 221
13.3.2 外部函数 222
13.3.3 导出函数 222
13.3.4 辅助方法 223
13.4 编译指令 224
13.4.1 参数指令 224
13.4.2 变量指令 225
13.4.3 内存指令 226
13.4.4 数值指令 227
13.4.5 结构化控制指令 228
13.4.6 跳转指令 230
13.4.7 函数调用指令 231
13.5 本章效果 233
13.6 本章小结 234

第14章 提案和前景 235
14.1 提案 235
14.1.1 多块内存 237
14.1.2 内存块操作 237
14.1.3 引用类型 239
14.1.4 尾递归调用 241
14.1.5 异常处理 242
14.1.6 多线程支持 244
14.1.7 其他提案 247
14.2 前景 248
附录A Wasm指令表 249
附录B 二进制格式 253
附录C WAT语法 255 

前言【为何编写本书】
万维网(World Wide Web,简称Web)问世至今,一直在不断完善,与Web相关的技术也一直在不停演进。每一次新技术的出现,都会让这张无形却又无处不在的网变得更加强大和易用,给人们的生活带来巨大的变化,甚至变革。
Web技术始于1990年前后,标志事件是当时在欧洲核子研究中心(CERN)工作的Tim Berners-Lee发明了超文本传输协议(Hypertext Transfer Protocol,HTTP)和超文本标记语言(Hypertext Markup Language,HTML)。时至今日,这两项技术仍然是Web的基石。最初发布时,这两项技术都比较简单,比如HTTP协议只支持GET请求,HTML语言只支持少量标签。另外,在那个年代,因为没有好用的图形用户界面浏览器,这两项技术的推行也不是很顺利。【为何编写本书】
万维网(World Wide Web,简称Web)问世至今,一直在不断完善,与Web相关的技术也一直在不停演进。每一次新技术的出现,都会让这张无形却又无处不在的网变得更加强大和易用,给人们的生活带来巨大的变化,甚至变革。
Web技术始于1990年前后,标志事件是当时在欧洲核子研究中心(CERN)工作的Tim Berners-Lee发明了超文本传输协议(Hypertext Transfer Protocol,HTTP)和超文本标记语言(Hypertext Markup Language,HTML)。时至今日,这两项技术仍然是Web的基石。最初发布时,这两项技术都比较简单,比如HTTP协议只支持GET请求,HTML语言只支持少量标签。另外,在那个年代,因为没有好用的图形用户界面浏览器,这两项技术的推行也不是很顺利。
第一款好用的浏览器发布于1993年,名叫Mosaic,由Marc Andreessen和Eric Bina等人合作开发。他们两人于1994年和Jim Clark等人联合创办了后来风光无限的网景(Netscape)公司,该公司推出的Navigator浏览器也曾红极一时,对Web技术的普及和发展起到了非常大的推动作用。随后,微软公司推出了著名的IE浏览器,引发了第一次浏览器大战,并最终赢得了胜利。战败的网景公司将Navigator浏览器代码开源,创建了Mozilla基金会。该基金会于2004年正式发布了Firefox浏览器。顺便说一下,苹果公司于2003年正式发布Safari浏览器;Google公司于2008年正式发布Chrome浏览器并在第二次浏览器大战中独占鳌头。
随着浏览器的快速普及,最初的HTML语言已经无法满足网页作者和用户的需求。当时的HTML只能通过标签展现某些固定的样式,比如标题格式、段落格式、文字高亮、简单的列表。而网页作者们想要更多的控制权,比如改变文本字体和颜色、段落背景颜色、文字对齐方式。1994年,当时还在CERN工作的Hkon Wium Lie发布了层叠样式表(Cascading Style Sheet,CSS)草案,试图改变这一局势。在吸收了Bert Bos等人的意见之后,CSS规范于1996年年底发布。CSS规范很快得到了微软IE、网景Navigator以及Opera等主流浏览器的支持。我们今天能看到各种赏心悦目的网页,CSS规范功不可没。
虽然有了CSS规范之后网页好看了很多,但仍然是静态的。Web急需一种脚本语言,让网页活起来。这次打头阵的是网景公司。1995年,网景发布了Navigator 2.0浏览器,支持由该公司Brendan Eich设计的JavaScript脚本语言。微软公司紧随其后,在1996年发布的IE 3.0浏览器中支持JScript脚本语言。为了推动浏览器脚本语言的标准化,网景公司在1996年年底将JavaScript语言提交给了欧洲计算机制造商协会(ECMA)。该协会于1997年6月发布了ECMAScript 1.0规范。有了JavaScript脚本执行能力,浏览器从单纯的内容展示工具升级成了应用运行平台,开启了全新的Web时代。
在JavaScript发展的过程中,还涌现出了很多技术,比如DHTML(1997年)、JSON(2000年)、Ajax(2005年)等,这里就不一一介绍了。随着这些技术的出现,JavaScript越来越强大,很多原来无法想象的应用都可以运行在浏览器上了。然而,新的问题开始显露出来:JavaScript的运行速度太慢了。
2008年,Google公司推出了Chrome浏览器,并在其内部搭载了全新设计的JavaScript引擎V8。通过使用JIT编译等优化技术,V8引擎的运行速度快了很多。在Chrome的压力下,其他浏览器厂商也纷纷改进技术,使得JavaScript运行速度慢的问题暂时得以缓解。同时,V8引擎还激发了Node.js技术的诞生,让JavaScript语言重新回到后端领域,这里就不详细介绍了。
如前所述,Web技术从未停止发展的脚步。随着移动互联网的兴起,HTML5应运而生(2008年公开草案,2014年正式发布)。2015年,WebAssembly(简称Wasm)技术首次亮相。Wasm技术旨在将汇编语言和Web融合,让浏览器能够以接近本地程序的速度运行网页应用程序。如今,Wasm规范已经正式发布(写作本书时,版本为1.1),并且获得了各大浏览器的普遍支持。虽然诞生于Web,但是从设计之初,Wasm就避免和浏览器绑定在一起,这使得它可以应用于更多地方。相信在不久的未来,Wasm技术一定会大有所为。
你是否已经迫不及待地想要了解Wasm技术?本书将带你领略Wasm技术的方方面面,为迎接即将到来的Web新时代做好准备!

【本书主要内容】
本书共14章,分为4个部分,内容安排如下。
第壹部分(概述)
第1章:介绍Wasm技术并准备编程环境。
第二部分(二进制和文本格式)
第2章:介绍Wasm模块整体结构和二进制编码格式。
第3章:介绍Wasm指令集和指令编码格式。
第4章:介绍Wasm文本格式。
第三部分(虚拟机和解释器)
第5章:介绍Wasm操作数栈以及参数和数值指令。
第6章:介绍Wasm内存和内存指令。
第7章:介绍Wasm函数调用机制,以及直接函数调用指令和变量指令。
第8章:介绍Wasm控制指令。
第9章:介绍本地函数调用机制,以及Wasm表和间接函数调用指令。
第10章:介绍Wasm导入和导出机制,以及链接和实例化逻辑。
第11章:介绍Wasm各个语义阶段可能出现的错误,以及验证规则。
第四部分(进阶)
第12章:以Rust语言为例,介绍如何将高级语言编译为Wasm模块。
第13章:介绍AOT编译技术,以及如何将Wasm模块编译为Go语言插件。
第14章:介绍Wasm目前存在的一些不足之处,以及后续版本的改进方向。

【本书读者对象】
本书适合有一定编辑基础且对Web前沿技术或高级语言虚拟机技术感兴趣的读者。书中有少量Rust示例代码,都比较简单易懂,即使不了解Rust语言也不影响阅读。本书将使用Go语言实现Wasm解释器,但并没有用到特别高深的技术,加之Go语言语法比较简单,相信对于有C系列语言(比如CC C#、Java、JavaScript等)基础的读者来说,书中的代码不难理解。总的来说,本书主要面向以下这几类读者。
想要深入了解Wasm技术的Web前后端程序员。
想要深入了解Wasm技术的区块链(尤其是智能合约平台)程序员。
想要深入了解Wasm技术,并把它应用在其他领域的程序员。
对高级语言虚拟机原理和实现感兴趣的读者。
对解释器、AOT编译器原理和实现感兴趣的读者。
想找中小型项目练手的Go语言初学者或者初、中级程序员。
想阅读Wasm规范但觉得内容枯燥的读者。

【如何阅读本书】
本书延续了我自己动手系列丛书的风格,每章均配有精心安排的代码。本书将带领读者循序渐进地实现Wasm,每一章的代码都建立在前一章代码的基础之上,但又都可以单独编译和运行。建议读者从第1章开始,按顺序阅读本书,编写或修改每一章的代码。当然,直接跳到感兴趣的章节进行阅读,必要时再学习其他章节,也是可以的。本书的源代码可以从https:github.comzxh0wasmgo-book获取。
內容試閱
【为何编写本书】
万维网(World Wide Web,简称Web)问世至今,一直在不断完善,与Web相关的技术也一直在不停演进。每一次新技术的出现,都会让这张无形却又无处不在的网变得更加强大和易用,给人们的生活带来巨大的变化,甚至变革。
Web技术始于1990年前后,标志事件是当时在欧洲核子研究中心(CERN)工作的Tim Berners-Lee发明了超文本传输协议(Hypertext Transfer Protocol,HTTP)和超文本标记语言(Hypertext Markup Language,HTML)。时至今日,这两项技术仍然是Web的基石。最初发布时,这两项技术都比较简单,比如HTTP协议只支持GET请求,HTML语言只支持少量标签。另外,在那个年代,因为没有好用的图形用户界面浏览器,这两项技术的推行也不是很顺利。
第一款好用的浏览器发布于1993年,名叫Mosaic,由Marc Andreessen和Eric Bina等人合作开发。他们两人于1994年和Jim Clark等人联合创办了后来风光无限的网景(Netscape)公司,该公司推出的Navigator浏览器也曾红极一时,对Web技术的普及和发展起到了非常大的推动作用。随后,微软公司推出了著名的IE浏览器,引发了第一次浏览器大战,并最终赢得了胜利。战败的网景公司将Navigator浏览器代码开源,创建了Mozilla基金会。该基金会于2004年正式发布了Firefox浏览器。顺便说一下,苹果公司于2003年正式发布Safari浏览器;Google公司于2008年正式发布Chrome浏览器并在第二次浏览器大战中独占鳌头。
随着浏览器的快速普及,最初的HTML语言已经无法满足网页作者和用户的需求。当时的HTML只能通过标签展现某些固定的样式,比如标题格式、段落格式、文字高亮、简单的列表。而网页作者们想要更多的控制权,比如改变文本字体和颜色、段落背景颜色、文字对齐方式。1994年,当时还在CERN工作的Hkon Wium Lie发布了层叠样式表(Cascading Style Sheet,CSS)草案,试图改变这一局势。在吸收了Bert Bos等人的意见之后,CSS规范于1996年年底发布。CSS规范很快得到了微软IE、网景Navigator以及Opera等主流浏览器的支持。我们今天能看到各种赏心悦目的网页,CSS规范功不可没。
虽然有了CSS规范之后网页好看了很多,但仍然是静态的。Web急需一种脚本语言,让网页活起来。这次打头阵的是网景公司。1995年,网景发布了Navigator 2.0浏览器,支持由该公司Brendan Eich设计的JavaScript脚本语言。微软公司紧随其后,在1996年发布的IE 3.0浏览器中支持JScript脚本语言。为了推动浏览器脚本语言的标准化,网景公司在1996年年底将JavaScript语言提交给了欧洲计算机制造商协会(ECMA)。该协会于1997年6月发布了ECMAScript 1.0规范。有了JavaScript脚本执行能力,浏览器从单纯的内容展示工具升级成了应用运行平台,开启了全新的Web时代。
在JavaScript发展的过程中,还涌现出了很多技术,比如DHTML(1997年)、JSON(2000年)、Ajax(2005年)等,这里就不一一介绍了。随着这些技术的出现,JavaScript越来越强大,很多原来无法想象的应用都可以运行在浏览器上了。然而,新的问题开始显露出来:JavaScript的运行速度太慢了。
2008年,Google公司推出了Chrome浏览器,并在其内部搭载了全新设计的JavaScript引擎V8。通过使用JIT编译等优化技术,V8引擎的运行速度快了很多。在Chrome的压力下,其他浏览器厂商也纷纷改进技术,使得JavaScript运行速度慢的问题暂时得以缓解。同时,V8引擎还激发了Node.js技术的诞生,让JavaScript语言重新回到后端领域,这里就不详细介绍了。
如前所述,Web技术从未停止发展的脚步。随着移动互联网的兴起,HTML5应运而生(2008年公开草案,2014年正式发布)。2015年,WebAssembly(简称Wasm)技术首次亮相。Wasm技术旨在将汇编语言和Web融合,让浏览器能够以接近本地程序的速度运行网页应用程序。如今,Wasm规范已经正式发布(写作本书时,版本为1.1),并且获得了各大浏览器的普遍支持。虽然诞生于Web,但是从设计之初,Wasm就避免和浏览器绑定在一起,这使得它可以应用于更多地方。相信在不久的未来,Wasm技术一定会大有所为。
你是否已经迫不及待地想要了解Wasm技术?本书将带你领略Wasm技术的方方面面,为迎接即将到来的Web新时代做好准备!

【本书主要内容】
本书共14章,分为4个部分,内容安排如下。
第壹部分(概述)
第1章:介绍Wasm技术并准备编程环境。
第二部分(二进制和文本格式)
第2章:介绍Wasm模块整体结构和二进制编码格式。
第3章:介绍Wasm指令集和指令编码格式。
第4章:介绍Wasm文本格式。
第三部分(虚拟机和解释器)
第5章:介绍Wasm操作数栈以及参数和数值指令。
第6章:介绍Wasm内存和内存指令。
第7章:介绍Wasm函数调用机制,以及直接函数调用指令和变量指令。
第8章:介绍Wasm控制指令。
第9章:介绍本地函数调用机制,以及Wasm表和间接函数调用指令。
第10章:介绍Wasm导入和导出机制,以及链接和实例化逻辑。
第11章:介绍Wasm各个语义阶段可能出现的错误,以及验证规则。
第四部分(进阶)
第12章:以Rust语言为例,介绍如何将高级语言编译为Wasm模块。
第13章:介绍AOT编译技术,以及如何将Wasm模块编译为Go语言插件。
第14章:介绍Wasm目前存在的一些不足之处,以及后续版本的改进方向。

【本书读者对象】
本书适合有一定编辑基础且对Web前沿技术或高级语言虚拟机技术感兴趣的读者。书中有少量Rust示例代码,都比较简单易懂,即使不了解Rust语言也不影响阅读。本书将使用Go语言实现Wasm解释器,但并没有用到特别高深的技术,加之Go语言语法比较简单,相信对于有C系列语言(比如CC C#、Java、JavaScript等)基础的读者来说,书中的代码不难理解。总的来说,本书主要面向以下这几类读者。
想要深入了解Wasm技术的Web前后端程序员。
想要深入了解Wasm技术的区块链(尤其是智能合约平台)程序员。
想要深入了解Wasm技术,并把它应用在其他领域的程序员。
对高级语言虚拟机原理和实现感兴趣的读者。
对解释器、AOT编译器原理和实现感兴趣的读者。
想找中小型项目练手的Go语言初学者或者初、中级程序员。
想阅读Wasm规范但觉得内容枯燥的读者。

【如何阅读本书】
本书延续了我自己动手系列丛书的风格,每章均配有精心安排的代码。本书将带领读者循序渐进地实现Wasm,每一章的代码都建立在前一章代码的基础之上,但又都可以单独编译和运行。建议读者从第1章开始,按顺序阅读本书,编写或修改每一章的代码。当然,直接跳到感兴趣的章节进行阅读,必要时再学习其他章节,也是可以的。本书的源代码可以从https:github.comzxh0wasmgo-book获取。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.