WebAssembly
用來為網路編譯機器碼的可移植高效率位元碼格式 来自维基百科,自由的百科全书
WebAssembly,简称Wasm,是一个低阶程式语言。WebAssembly是可移植性的抽象语法树[2],被设计来提供比JavaScript更快速的编译及执行[3]。WebAssembly将让开发者能运用自己熟悉的程式语言(最初以C/C++作为实作目标)编译,再藉虚拟机器引擎在浏览器内执行[4]。WebAssembly的开发团队分别来自Mozilla、Google、Microsoft、Apple,代表著四大网路浏览器Firefox、Chrome、Microsoft Edge、Safari[5]。2017年11月,以上四个浏览器都开始实验性的支援WebAssembly[6][7]。2019年12月5日,在W3C制定《WebAssembly核心规范[8]》后,WebAssembly正式被认证为Web的标准之一[9]。
设计
在官方的一个github页面[10]与说明文件[11]中,阐述了WebAssembly的设计与实作原则,包含:
- 定义一个可移植,具有大小与载入高效率的二进位格式,作为编译标的。这个编译标的必须可以被编译至常见的平台,包含移动端与物联网,并且可以善用硬体资源、有原生执行码的执行速度。
- 规格与实作:
- 设计可以执行在现有的网路平台之内以及与之整合:
- 保持无版本问题、特色测试、向后相容的网路平台
- 在与Javascript相同的环境中执行
- 允许从Javascript中同步呼叫
- 强化同源(Same-origin)和安全性权限政策
- 允许浏览器存取相同功能的Javascript API
- 定义一个可人工读取,能和二进位格式互换的纯文字格式,以支援查看原始码
- 设计也可以用于非浏览器的嵌入式系统
- 制作大平台
官方的宣传
Ending定律也称为终结者定律, 它是Ending在2016年Emscripten技术交流会上给出的断言[14]:
所有可以用WebAssembly实现的终将会用WebAssembly实现。
现在这个定律除了 WebAssembly 的支持者用做宣传之外看不到任何实现的迹象。
参见
- ActiveX
- VBScript
- Flash / ActionScript
- Microsoft Silverlight
- Java Applet / JavaFX
- asm.js
- Native Client
其他位元组码
参考资料
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.