WebAssembly 原理與核心技術
張秀宏
- 出版商: 機械工業
- 出版日期: 2020-09-20
- 售價: $474
- 貴賓價: 9.5 折 $450
- 語言: 簡體中文
- 頁數: 272
- 裝訂: 平裝
- ISBN: 7111665546
- ISBN-13: 9787111665540
-
相關分類:
WebAssembly
立即出貨
買這商品的人也買了...
-
$403Redis 設計與實現 -
$454Redis 開發與運維 -
TCP/IP 詳解 (捲1):協議 (TCP/IP Illustrated, Volume 1 : The Protocols, 2/e)$774$735 -
$468TCP/IP 詳解 (捲2):實現 (TCP/IP Illustrated, Volume 2: The Implementation) -
自己動手實現 Lua:虛擬機、編譯器和標準庫$534$507 -
軟件調試 第2版 捲1:硬件基礎$708$673 -
$250WebAssembly 標準入門 -
$301TCP/IP 詳解 (捲3):TCP 事務協議、HTTP、NNTP 和 UNIX 域協議 (TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols) -
$726微服務架構設計模式 (Microservices Patterns: With examples in Java) -
$534超大流量分佈式系統架構解決方案:人人都是架構師2.0 -
$594Flutter 實戰 -
$327敏捷整潔之道 : 回歸本源 (Clean Agile : Back to Basics) -
依賴注入:原理、實作與設計模式 (Dependency Injection: Principles, Practices, Patterns, 2/e)$1,000$780 -
$324Go 專家編程 -
SQL 必知必會, 5/e (Sams Teach Yourself SQL in 10 Minutes a Day, 5/e)$294$279 -
深度探索 Linux 系統虛擬化:原理與實現$534$507 -
$403面向 WebAssembly 編程:應用開發方法與實踐 -
軟件調試 第2版 捲2 : Windows 平臺調試 (上.下冊)$1,194$1,134 -
$615WebAssembly 實戰 (WebAssembly in Action) -
Go 語言精進之路:從新手到高手的編程思想、方法和技巧 2$714$678 -
Martin Fowler 的企業級軟體架構模式:軟體重構教父傳授 51個模式,活用設計思考與架構決策 (Patterns of Enterprise Application Architecture)$800$624 -
AWS 解決方案架構師學習與備考 (第3版·SAA-C02)$588$559 -
JavaScript 多執行緒|超越事件迴圈的並行 (Multithreaded JavaScript)$580$458 -
深入剖析 Kubernetes$560$442 -
SQL Server 運維之道$594$564
中文年末書展|繁簡參展書2書75折 詳見活動內容 »
-
75折
為你寫的 Vue Components:從原子到系統,一步步用設計思維打造面面俱到的元件實戰力 (iThome 鐵人賽系列書)$780$585 -
75折
BDD in Action, 2/e (中文版)$960$720 -
75折
看不見的戰場:社群、AI 與企業資安危機$750$563 -
79折
AI 精準提問 × 高效應用:DeepSeek、ChatGPT、Claude、Gemini、Copilot 一本搞定$390$308 -
7折
超實用!Word.Excel.PowerPoint 辦公室 Office 365 省時高手必備 50招, 4/e (暢銷回饋版)$420$294 -
75折
裂縫碎光:資安數位生存戰$550$412 -
85折
日本當代最強插畫 2025 : 150位當代最強畫師豪華作品集$640$544 -
79折
Google BI 解決方案:Looker Studio × AI 數據驅動行銷實作,完美整合 Google Analytics 4、Google Ads、ChatGPT、Gemini$630$498 -
79折
超有料 Plus!職場第一實用的 AI 工作術 - 用對 AI 工具、自動化 Agent, 讓生產力全面進化!$599$473 -
75折
從零開始學 Visual C# 2022 程式設計, 4/e (暢銷回饋版)$690$518 -
75折
Windows 11 制霸攻略:圖解 AI 與 Copilot 應用,輕鬆搞懂新手必學的 Windows 技巧$640$480 -
75折
精準駕馭 Word!論文寫作絕非難事 (好評回饋版)$480$360 -
Sam Yang 的插畫藝術:用 Procreate / PS 畫出最強男友視角 x 女孩美好日常$699$629 -
79折
AI 加持!Google Sheets 超級工作流$599$473 -
78折
想要 SSR? 快使用 Nuxt 吧!:Nuxt 讓 Vue.js 更好處理 SEO 搜尋引擎最佳化(iThome鐵人賽系列書)$780$608 -
75折
超實用!業務.總管.人資的辦公室 WORD 365 省時高手必備 50招 (第二版)$500$375 -
7折
Node-RED + YOLO + ESP32-CAM:AIoT 智慧物聯網與邊緣 AI 專題實戰$680$476 -
79折
「生成式⇄AI」:52 個零程式互動體驗,打造新世代人工智慧素養$599$473 -
7折
Windows APT Warfare:惡意程式前線戰術指南, 3/e$720$504 -
75折
我輩程式人:回顧從 Ada 到 AI 這條程式路,程式人如何改變世界的歷史與未來展望 (We, Programmers: A Chronicle of Coders from Ada to AI)$850$637 -
75折
不用自己寫!用 GitHub Copilot 搞定 LLM 應用開發$600$450 -
79折
Tensorflow 接班王者:Google JAX 深度學習又快又強大 (好評回饋版)$780$616 -
79折
GPT4 會你也會 - 共融機器人的多模態互動式情感分析 (好評回饋版)$700$553 -
79折
技術士技能檢定 電腦軟體應用丙級術科解題教本|Office 2021$460$363 -
75折
Notion 與 Notion AI 全能實戰手冊:生活、學習與職場的智慧策略 (暢銷回饋版)$560$420
相關主題
商品描述
WebAssembly是棧式虛擬機和字節碼技術的應用,在Web開發、
後端開發、區塊鍊等領域大顯身手,越來越受歡迎。
本書是WebAssembly入門和進階的必讀書,它不僅對WebAssembly的工作原理、
核心技術和規範進行了全面的剖析和解讀,而且給出了實現WebAssembly解釋器和AOT編譯器的思路和代碼。
本書共14章,分為四個部分:
第一部分WebAssembly概述(第1章)
主要介紹了WebAssembly的概念、發展歷史以及閱讀本書需要做的準備工作。
第二部分二進制和文本格式(第2~4章)
詳細講解了WebAssembly的二進制格式、文本格式以及指令集。
第三部分虛擬機和解釋器(第5~11章)
詳細講解了WebAssembly的解釋器和虛擬機的工作原理以及實現思路,包括操作數棧、
內存、函數調用、控制指令、鏈接和實例化、錯誤處理和驗證等。
第四部分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
