-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

WebAssembly標準入門

( 簡體 字)
作者:柴樹杉,丁爾男類別:1. -> 程式設計 -> 綜合
譯者:
出版社:人民郵電出版社WebAssembly標準入門 3dWoo書號: 50374
詢問書籍請說出此書號!

缺書
NT售價: 245

出版日:1/1/2019
頁數:194
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787115500595
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

內容簡介:

WebAssembly是一種新興的網頁虛擬機標準,它的設計目標包括高可移植性、高安全性、高效率(包括載入效率和運行效率)、盡可能小的程序體積。本書詳盡介紹了WebAssembly程序在JavaScript環境下的使用方法、WebAssembly匯編語言和二進制格式,給出了大量簡單易懂的示例,同時以C/C++和Go語言開發環境為例,介紹了如何使用其他高級語言開發WebAssembly模塊。
本書適合從事高性能Web前端開發、跨語言Web應用開發的技術人員學習參考,也可以作為WebAssembly標準參考手冊隨時查閱。
目錄:

第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
序: