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]。
![]() | |
结构化堆栈机器 | |
设计者 | W3C |
实作者 | |
2017年3月 | |
当前版本 |
|
型态系统 | 静态 |
系统平台 | 跨平台 |
许可证 | Apache许可证2.0 |
文档扩展名 | .wat (纯文本格式,人类可读) .wasm(二进制文件) |
网站 | |
启发语言 | |
影响语言 | |
AssemblyScript |
设计
最高指导目标
在官方的一个github页面[10]与说明文档[11]中,阐述了WebAssembly的设计与实作原则,包含:
- 定义一个可移植,具有大小与加载高效率的二进位格式,作为编译标的。这个编译标的必须可以被编译至常见的平台,包含移动端与物联网,并且可以善用硬件资源、有原生运行码的运行速度。
- 规格与实作:
- 设计可以运行在现有的网络平台之内以及与之集成:
- 保持无版本问题、特色测试、向后兼容的网络平台
- 在与Javascript相同的环境中运行
- 允许从Javascript中同步调用
- 强化同源(Same-origin)和安全性权限政策
- 允许浏览器访问相同功能的Javascript API
- 定义一个可人工读取,能和二进位格式互换的纯文本格式,以支持查看原代码
- 设计也可以用于非浏览器的嵌入式系统
- 制作大平台
官方的宣传
Ending定律
Ending定律也称为终结者定律, 它是Ending在2016年Emscripten技术交流会上给出的断言[14]:
所有可以用WebAssembly实现的终将会用WebAssembly实现。
现在这个定律除了 WebAssembly 的支持者用做宣传之外看不到任何实现的迹象。
参见
- ActiveX
- VBScript
- Flash / ActionScript
- Microsoft Silverlight
- Java Applet / JavaFX
- asm.js
- Native Client
其他字节码
参考数据
- . 2022年6月1日 [2023年2月11日].
- . GitHub. [2016-03-20]. (原始内容存档于2021-03-08).
- . GitHub. [2016-03-20]. (原始内容存档于2019-06-06).
- . TechCrunch. 2015-06-17 [2015-06-20]. (原始内容存档于2022-04-05).
- Bright, Peter. . Ars Technica. Condé Nast. 2015-06-18 [2015-06-20]. (原始内容存档于2017-03-20).
- . iThome. [2018-01-06]. (原始内容存档于2020-05-30) (中文(繁体)).
- . www.linuxpilot.com. [2018-01-06]. (原始内容存档于2019-06-30) (中文(台湾)).
- WebAssembly内核规范 (页面存档备份,存于)
- . 2019-12-05 [2019-12-06]. (原始内容存档于2022-04-19).
- . [2018-01-06]. (原始内容存档于2019-06-06).
- . webassembly.org. [2018-01-13]. (原始内容存档于2022-04-22).
- . [2018-01-06]. (原始内容存档于2021-04-01).
- . webassembly.org. [2018-01-13]. (原始内容存档于2019-05-15).
- .
外部链接
- 官方网站
- WebAssembly Community Group(页面存档备份,存于)
- WebAssembly Design (页面存档备份,存于)
- WebAssembly资源精选 - 中文版 (页面存档备份,存于)
- WebAssembly标准入门 - 人民邮电 (页面存档备份,存于)
- C/C++面向WebAssembly编程 - 开源图书 (页面存档备份,存于)
- MDN Web Docs WebAssembly文档(中文版 (页面存档备份,存于)、英文版 (页面存档备份,存于))
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.