WebAssembly
package.lua第80行Lua错误:module 'Module:CGroup/core' not found
页面Module:Infobox/styles.css没有内容。
| File:WebAssembly Logo.svg | |
| 编程范型 | 结构化堆栈机器 |
|---|---|
| 设计者 | W3C |
| 实作者 | 页面Template:Plainlist/styles.css没有内容。 |
| 发行时间 | 2017年3月 |
| 当前版本 | Template:Software version |
| 型态系统 | 静态 |
| 系统平台 | 跨平台 |
| 许可证 | Apache许可证2.0 |
| 文件扩展名 | .wat (纯文字格式,人类可读) .wasm(二进制档案) |
| 受影响于 | |
| 影响语言 | |
| package.lua第80行Lua错误:module 'Module:Ilh/data' not found | |
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]。2019年12月5日,在W3C制定《WebAssembly核心规范[7]》后,WebAssembly正式被认证为Web的标准之一[8]。
设计[编辑]
最高指导目标[编辑]
在官方的一个github页面[9]与说明文件[10]中,阐述了WebAssembly的设计与实作原则,包含:
- 定义一个可移植,具有大小与载入高效率的二进制格式,作为编译标的。这个编译标的必须可以被编译至常见的平台,包含移动端与物联网,并且可以善用硬件资源、有原生执行码的执行速度。
- 规格与实作:
- 设计可以执行在现有的网络平台之内以及与之整合:
- 保持无版本问题、特色测试、向后相容的网络平台
- 在与Javascript相同的环境中执行
- 允许从Javascript中同步呼叫
- 强化同源(Same-origin)和安全性权限政策
- 允许浏览器存取相同功能的Javascript API
- 定义一个可人工读取,能和二进制格式互换的纯文字格式,以支援查看源代码
- 设计也可以用于非浏览器的嵌入式系统
- 制作大平台
下一阶段要实作的特色[编辑]
在2017年推出第一个版本后,同时也列出了下一阶段将实作的特色[11][12]
- 制定规格
- 执行绪
- 固定长度的SIMD
- 例外处理
- 垃圾回收
- 记忆体区块操作
- 网页内容安全性政策
- ECMAScript 模组整合
- 尾端呼叫
- Non-trapping浮点数-整数转换
- 多值函数
- Host bindings
官方的宣传[编辑]
Ending定律[编辑]
Ending定律也称为终结者定律, 它是Ending在2016年Emscripten技术交流会上给出的断言[13]:
所有可以用WebAssembly实现的终将会用WebAssembly实现。
现在这个定律除了 WebAssembly 的支持者用做宣传之外看不到任何实现的迹象。
参见[编辑]
- ActiveX
- VBScript
- Flash / ActionScript
- Microsoft Silverlight
- Java Applet / JavaFX
- asm.js
- Native Client
其他字节码
参考资料[编辑]
- ↑ package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
- ↑ package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
- ↑ package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
- ↑ package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
- ↑ package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
- ↑ package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
- ↑ WebAssembly核心规范 (页面存档备份,存于互联网档案馆)
- ↑ package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
- ↑ package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
- ↑ package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
- ↑ package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
- ↑ package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
- ↑ package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
外部链接[编辑]
- 找不到URL。请在此处指定URL或在维基数据上添加。
- WebAssembly Community Group(页面存档备份,存于互联网档案馆)
- WebAssembly Design (页面存档备份,存于互联网档案馆)
- WebAssembly资源精选 - 中文版 (页面存档备份,存于互联网档案馆)
- WebAssembly标准入门 - 人民邮电 (页面存档备份,存于互联网档案馆)
- C/C++面向WebAssembly编程 - 开源图书 (页面存档备份,存于互联网档案馆)
- MDN Web Docs WebAssembly文档(中文版 (页面存档备份,存于互联网档案馆)、英文版 (页面存档备份,存于互联网档案馆))
package.lua第80行Lua错误:module 'Module:Navbar/configuration' not found package.lua第80行Lua错误:module 'Module:Navbar/configuration' not found package.lua第80行Lua错误:module 'Module:Navbar/configuration' not found