WebAssembly
WebAssembly或稱wasm是一個實驗性的低階程式語言,應用於瀏覽器內的客戶端。WebAssembly是可攜式的抽象語法樹[1],被設計來提供比JavaScript更快速的編譯及執行[2]。WebAssembly將讓開發者能運用自己熟悉的程式語言(最初以C/C++作為實作目標)編譯,再藉虛擬機器引擎在瀏覽器內執行[3]。WebAssembly的開發團隊分別來自Mozilla、Google、Microsoft、Apple,代表著四大網路瀏覽器Firefox、Chrome、Microsoft Edge、Safari[4]。2017年11月,以上四個瀏覽器都開始實驗性的支援WebAssembly[5][6]。WebAssembly 于 2019 年 12 月 5 日成为万维网联盟(W3C)的推荐,与 HTML,CSS 和 JavaScript 一起,成为 Web 的第四种语言。[7]。
![]() | |
面向表达式 | |
型態系統 | 静态 |
系统平台 | 跨平台 |
許可證 | Apache许可证 |
文件扩展名 | .wast, .wasm |
網站 | ![]() |
啟發語言 | |
Asm.js、PNaCl |
設計
最高指導目標
在官方的一個github頁面[8]與說明文件[9]中,闡述了WebAssembly的設計與實作原則,包含:
- 定義一個可移植,具有大小與載入高效率的二進位格式,作為編譯標的。這個編譯標的必須可以被編譯至常見的平台,包含移動端與物聯網,並且可以善用硬體資源、有原生執行碼的執行速度。
- 規格與實作:
- 設計可以執行在現有的網路平台之內以及與之整合:
- 保持無版本問題、特色測試、向後相容的網路平台
- 在與Javascript相同的環境中執行
- 允許從Javascript中同步呼叫
- 強化同源(Same-origin)和安全性權限政策
- 允許瀏覽器存取相同功能的Javascript API
- 定義一個可人工讀取,能和二進位格式互換的純文字格式,以支援查看原始碼
- 設計也可以用於非瀏覽器的嵌入式系統
- 製作大平台
官方的宣傳
Ending定律
Ending定律也称为终结者定律[12], 它是Ending在2016年Emscripten技术交流会上给出的断言:
所有可以用WebAssembly实现的终将会用WebAssembly实现。
現在這個定律除了 WebAssembly 的支持者用做宣傳之外看不到任何實現的跡象。
參見
其他位元組碼
參考資料
- . GitHub.
- . GitHub.
- . TechCrunch. 2015-06-17.
- Bright, Peter. . Ars Technica. Condé Nast. 2015-06-18 [2015-06-20]. (原始内容存档于2017-03-20).
- . iThome. [2018-01-06] (中文(繁體)).
- . www.linuxpilot.com. [2018-01-06] (中文(台灣)).
- . 2019-12-05.
- . [2018-01-06].
- . webassembly.org. [2018-01-13].
- . [2018-01-06].
- . webassembly.org. [2018-01-13].
- .
外部連結
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.