注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡圖形圖像、多媒體、網(wǎng)頁制作WebAssembly原理與核心技術

WebAssembly原理與核心技術

WebAssembly原理與核心技術

定 價:¥79.00

作 者: 張秀宏 著
出版社: 機械工業(yè)出版社
叢編項:
標 簽: 暫缺

ISBN: 9787111665540 出版時間: 2020-09-01 包裝: 平裝
開本: 16開 頁數(shù): 260 字數(shù):  

內容簡介

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

作者簡介

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

圖書目錄


【第一部分 概述】
●第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 魔數(shù)和版本號 25
2.2.1 類型段 26
2.2.2 導入段 28
2.2.3 函數(shù)段 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 數(shù)據(jù)段 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 實現(xiàn)dump命令 48
2.5 本章小結 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 內存指令 61
3.2.4 結構化控制指令 62
3.2.5 跳轉指令 64
3.2.6 函數(shù)調用指令 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 函數(shù)域 75
4.1.4 表域和元素域 75
4.1.5 內存域和數(shù)據(jù)域 76
4.1.6 全局域 77
4.1.7 起始域 77
4.2 指令 78
4.2.1 普通形式 78
4.2.2 折疊形式 79
4.3 本章小結 81

【第三部分 虛擬機和解釋器】
●第5章 操作數(shù)棧 85
5.1 操作數(shù)棧 85
5.2 虛擬機 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 測試指令 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 內存實現(xiàn) 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章 函數(shù)調用(上) 119
7.1 函數(shù)調用介紹 119
7.2 函數(shù)調用實現(xiàn) 122
7.2.1 增強操作數(shù)棧 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 控制指令實現(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 本章小結 153

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

●第10章 鏈接和實例化 171
10.1 定義實例接口 171
10.2 實現(xiàn)實例接口 174
10.2.1 函數(shù) 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 驗證函數(shù)字節(jié)碼 192
11.3.1 數(shù)據(jù)結構 193
11.3.2 操作數(shù)棧 194
11.3.3 控制棧 195
11.3.4 驗證指令 197
11.4 本章效果 198
11.5 本章小結 199

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

●第13章 AOT編譯器 217
13.1 AOT介紹 217
13.2 編譯模塊 219
13.3 編譯函數(shù) 220
13.3.1 內部函數(shù) 221
13.3.2 外部函數(shù) 222
13.3.3 導出函數(shù) 222
13.3.4 輔助方法 223
13.4 編譯指令 224
13.4.1 參數(shù)指令 224
13.4.2 變量指令 225
13.4.3 內存指令 226
13.4.4 數(shù)值指令 227
13.4.5 結構化控制指令 228
13.4.6 跳轉指令 230
13.4.7 函數(shù)調用指令 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






本目錄推薦

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