注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)圖形圖像、多媒體、網(wǎng)頁(yè)制作WebAssembly原理與核心技術(shù)

WebAssembly原理與核心技術(shù)

WebAssembly原理與核心技術(shù)

定 價(jià):¥79.00

作 者: 張秀宏 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787111665540 出版時(shí)間: 2020-09-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 260 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  WebAssembly是棧式虛擬機(jī)和字節(jié)碼技術(shù)的*新應(yīng)用,在Web開(kāi)發(fā)、后端開(kāi)發(fā)、區(qū)塊鏈等領(lǐng)域大顯身手,越來(lái)越受歡迎。 本書(shū)是WebAssembly入門(mén)和進(jìn)階的必讀書(shū),它不僅對(duì)WebAssembly的工作原理、核心技術(shù)和規(guī)范進(jìn)行了全面的剖析和解讀,而且給出了實(shí)現(xiàn)WebAssembly解釋器和AOT編譯器的思路和代碼。本書(shū)共14章,分為四個(gè)部分:★第壹部分 WebAssembly概述(第1章)主要介紹了WebAssembly的概念、發(fā)展歷史以及閱讀本書(shū)需要做的準(zhǔn)備工作?!锏诙糠?二進(jìn)制和文本格式(第2~4章)詳細(xì)講解了WebAssembly的二進(jìn)制格式、文本格式以及指令集?!锏谌糠?虛擬機(jī)和解釋器(第5~11章)詳細(xì)講解了WebAssembly的解釋器和虛擬機(jī)的工作原理以及實(shí)現(xiàn)思路,包括操作數(shù)棧、內(nèi)存、函數(shù)調(diào)用、控制指令、鏈接和實(shí)例化、錯(cuò)誤處理和驗(yàn)證等?!锏谒牟糠?WebAssembly進(jìn)階(第12~14章)深入地講解了AOT編譯器的實(shí)現(xiàn)思路和WebAssembly的提案等內(nèi)容。 通過(guò)閱讀本書(shū),讀者不僅可以理解WebAssembly核心原理,還可以學(xué)習(xí)如何實(shí)現(xiàn)WebAssembly解釋器和AOT編譯器。即收獲了“魚(yú)”,又學(xué)會(huì)了“漁”。

作者簡(jiǎn)介

  張秀宏 服務(wù)器開(kāi)發(fā)工程師,在游戲服務(wù)器、區(qū)塊鏈等領(lǐng)域有多年的開(kāi)發(fā)和架構(gòu)經(jīng)驗(yàn)。曾在EA、樂(lè)元素、比特大陸等公司擔(dān)任高級(jí)服務(wù)器工程師,對(duì)Java、Go、Lua等語(yǔ)言以及高級(jí)語(yǔ)言虛擬機(jī)有非常深入的研究。 曾獨(dú)立撰寫(xiě)暢銷(xiāo)書(shū)《自己動(dòng)手寫(xiě)Java虛擬機(jī)》和《自己動(dòng)手實(shí)現(xiàn)Lua:虛擬機(jī)、編譯器、標(biāo)準(zhǔn)庫(kù)》,廣受讀者好評(píng)?!禬ebAssembly原理與核心技術(shù)》是作者在高級(jí)語(yǔ)言虛擬機(jī)領(lǐng)域的又一力作。

圖書(shū)目錄


【第一部分 概述】
●第1章  Wasm介紹 3
1.1 Wasm簡(jiǎn)史 3
1.2 Wasm簡(jiǎn)介 6
1.3 準(zhǔn)備工作 10
1.4 你好Wasm 11
1.5 本章小結(jié) 13

【第二部分 二進(jìn)制和文本格式】
●第2章 二進(jìn)制格式 17
2.1 二進(jìn)制格式介紹 17
2.1.1 Wasm二進(jìn)制格式總體結(jié)構(gòu) 18
2.1.2 索引空間 21
2.1.3 實(shí)體類(lèi)型 23
2.2 二進(jìn)制格式分析 25
2.2.0 魔數(shù)和版本號(hào) 25
2.2.1 類(lèi)型段 26
2.2.2 導(dǎo)入段 28
2.2.3 函數(shù)段 30
2.2.4 表段 30
2.2.5 內(nèi)存段 31
2.2.6 全局段 32
2.2.7 導(dǎo)出段 33
2.2.8 起始段 34
2.2.9 元素段 35
2.2.10 代碼段 35
2.2.11 數(shù)據(jù)段 37
2.2.12 自定義段 38
2.3 二進(jìn)制格式解碼 39
2.3.1 LEB128介紹 39
2.3.2 解碼基本類(lèi)型 41
2.3.3 解碼向量類(lèi)型 44
2.3.4 處理tag 44
2.3.5 解碼代碼項(xiàng)和表達(dá)式 45
2.3.6 解碼整體結(jié)構(gòu) 45
2.3.7 處理錯(cuò)誤情況 47
2.4 實(shí)現(xiàn)dump命令 48
2.5 本章小結(jié) 50

●第3章 指令集 51
3.1 指令集介紹 51
3.1.1 操作碼 51
3.1.2 助記符 53
3.1.3 立即數(shù) 54
3.1.4 操作數(shù) 57
3.2 指令分析 58
3.2.1 數(shù)值指令 58
3.2.2 變量指令 60
3.2.3 內(nèi)存指令 61
3.2.4 結(jié)構(gòu)化控制指令 62
3.2.5 跳轉(zhuǎn)指令 64
3.2.6 函數(shù)調(diào)用指令 65
3.3 指令解碼 66
3.4 完善dump命令 69
3.5 本章小結(jié) 70

●第4章 文本格式 71
4.1 基本結(jié)構(gòu) 71
4.1.1 類(lèi)型域 72
4.1.2 導(dǎo)入和導(dǎo)出域 73
4.1.3 函數(shù)域 75
4.1.4 表域和元素域 75
4.1.5 內(nèi)存域和數(shù)據(jù)域 76
4.1.6 全局域 77
4.1.7 起始域 77
4.2 指令 78
4.2.1 普通形式 78
4.2.2 折疊形式 79
4.3 本章小結(jié) 81

【第三部分 虛擬機(jī)和解釋器】
●第5章 操作數(shù)棧 85
5.1 操作數(shù)棧 85
5.2 虛擬機(jī) 87
5.2.1 指令循環(huán) 88
5.2.2 指令分派 88
5.3 參數(shù)指令 89
5.3.1 drop指令 90
5.3.2 select指令 90
5.4 數(shù)值指令 91
5.4.1 常量指令 92
5.4.2 測(cè)試指令 92
5.4.3 比較指令 93
5.4.4 一元算術(shù)指令 95
5.4.5 二元算術(shù)指令 96
5.4.6 類(lèi)型轉(zhuǎn)換指令 99
5.5 本章效果 103
5.6 本章小結(jié) 105

●第6章 內(nèi)存 107
6.1 內(nèi)存介紹 107
6.2 內(nèi)存實(shí)現(xiàn) 108
6.3 內(nèi)存指令 109
6.3.1 size和grow指令 110
6.3.2 加載指令 111
6.3.3 存儲(chǔ)指令 113
6.4 本章效果 115
6.5 本章小結(jié) 117

●第7章 函數(shù)調(diào)用(上) 119
7.1 函數(shù)調(diào)用介紹 119
7.2 函數(shù)調(diào)用實(shí)現(xiàn) 122
7.2.1 增強(qiáng)操作數(shù)棧 123
7.2.2 添加調(diào)用棧 124
7.2.3 增強(qiáng)虛擬機(jī) 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 本章小結(jié) 135

●第8章 控制指令 137
8.1 控制指令介紹 137
8.1.1 跳轉(zhuǎn)標(biāo)簽 138
8.1.2 跳轉(zhuǎn)標(biāo)簽索引 139
8.1.3 塊類(lèi)型 141
8.2 控制指令實(shí)現(xiàn) 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 本章小結(jié) 153

●第9章 函數(shù)調(diào)用(下) 155
9.1 本地函數(shù)調(diào)用 155
9.1.1 本地函數(shù)介紹 155
9.1.2 統(tǒng)一兩種函數(shù) 158
9.1.3 調(diào)用本地函數(shù) 159
9.1.4 鏈接本地函數(shù) 161
9.1.5 測(cè)試本節(jié)代碼 162
9.2 間接函數(shù)調(diào)用 163
9.2.1 間接函數(shù)調(diào)用介紹 163
9.2.2 實(shí)現(xiàn)表 165
9.2.3 初始化表 166
9.2.4 call_indirect指令 167
9.2.5 測(cè)試本節(jié)代碼 168
9.3 本章小結(jié) 169

●第10章 鏈接和實(shí)例化 171
10.1 定義實(shí)例接口 171
10.2 實(shí)現(xiàn)實(shí)例接口 174
10.2.1 函數(shù) 174
10.2.2 表 176
10.2.3 全局變量 177
10.2.4 虛擬機(jī) 177
10.3 實(shí)例化模塊 178
10.4 本章效果 180
10.5 本章小結(jié) 183

●第11章 錯(cuò)誤處理和驗(yàn)證 185
11.1 各種錯(cuò)誤 186
11.1.1 解碼錯(cuò)誤 186
11.1.2 結(jié)構(gòu)錯(cuò)誤 188
11.1.3 實(shí)例化錯(cuò)誤 189
11.1.4 運(yùn)行時(shí)錯(cuò)誤 190
11.2 驗(yàn)證整體結(jié)構(gòu) 190
11.3 驗(yàn)證函數(shù)字節(jié)碼 192
11.3.1 數(shù)據(jù)結(jié)構(gòu) 193
11.3.2 操作數(shù)棧 194
11.3.3 控制棧 195
11.3.4 驗(yàn)證指令 197
11.4 本章效果 198
11.5 本章小結(jié) 199

【第四部分 進(jìn)階】
●第12章 編譯為Wasm 203
12.1 控制指令 203
12.2 參數(shù)指令 207
12.3 變量指令 208
12.4 內(nèi)存指令 210
12.5 數(shù)值指令 213
12.6 本章小結(jié) 215

●第13章 AOT編譯器 217
13.1 AOT介紹 217
13.2 編譯模塊 219
13.3 編譯函數(shù) 220
13.3.1 內(nèi)部函數(shù) 221
13.3.2 外部函數(shù) 222
13.3.3 導(dǎo)出函數(shù) 222
13.3.4 輔助方法 223
13.4 編譯指令 224
13.4.1 參數(shù)指令 224
13.4.2 變量指令 225
13.4.3 內(nèi)存指令 226
13.4.4 數(shù)值指令 227
13.4.5 結(jié)構(gòu)化控制指令 228
13.4.6 跳轉(zhuǎn)指令 230
13.4.7 函數(shù)調(diào)用指令 231
13.5 本章效果 233
13.6 本章小結(jié) 234

●第14章 提案和前景 235
14.1 提案 235
14.1.1 多塊內(nèi)存 237
14.1.2 內(nèi)存塊操作 237
14.1.3 引用類(lèi)型 239
14.1.4 尾遞歸調(diào)用 241
14.1.5 異常處理 242
14.1.6 多線程支持 244
14.1.7 其他提案 247
14.2 前景 248
附錄A Wasm指令表 249
附錄B 二進(jìn)制格式 253
附錄C WAT語(yǔ)法 255






本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)