What?

  WebAssembly 是一種二進(jìn)制格式的類匯編代碼,可以被瀏覽器加載和并進(jìn)一步編譯成可執(zhí)行的機器碼,從而在客戶端運行。它還可以作為高級語言的編譯目標(biāo),理論上任何語言都可以編譯為 WebAssembly。

  我們知道匯編語言就是機器碼的一種直譯版本,它是一套指令的集合,必須與特定機器匹配。WebAssembly 雖然也可以看成匯編代碼,但有一點不同,它是與特定機器無關(guān)的,它的指令被稱為虛擬指令,并非真正的處理器指令。也就是說 WebAssembly 是一個平臺無關(guān)的通用編譯目標(biāo),可以運行在各種設(shè)備上,包括手機和物聯(lián)網(wǎng)。

  WebAssembly 起源于 Mozilla 的一個項目:ASM.js,這玩意兒簡單的說就是 JS 的一個輕簡版子集,去除了動態(tài)類型、對象、垃圾回收等損耗性能的部件。它的作用是成為 C/C++ 的編譯目標(biāo),從而能將大中型游戲引入瀏覽器,事實證明效果不錯。然而 ASM.js 畢竟仍然是 JS,它不具備原生代碼的一些功能,如 SIMD、線程、共享內(nèi)存等,因此 ASM.js 進(jìn)一步發(fā)展,就成了 WebAssembly。

  WebAssembly 的實質(zhì)是 AST,而非字節(jié)碼(bytecode),使用 AST 的原因是因為 AST 比字節(jié)碼更容易壓縮,也更容易翻譯。

  作為瀏覽器廠商四巨頭(谷歌、蘋果、火狐、微軟)合作共謀的產(chǎn)物,WebAssembly 的應(yīng)用前景不可小覷。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運,軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式