WebAssembly

来自Local Chinese Wikipedia

页面[[:Module:Message box/mbox.css|Module:Message box/mbox.css]]没有内容。

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

package.lua第80行Lua错误:module 'Module:CGroup/core' not found

页面Module:Infobox/styles.css没有内容。

WebAssembly
File:WebAssembly Logo.svg
编程范型结构化堆栈机器
设计者W3C
实作者页面Template:Plainlist/styles.css没有内容。
发行时间2017年3月,​9年前​(2017-03
当前版本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的开发团队分别来自MozillaGoogleMicrosoftApple,代表着四大网络浏览器FirefoxChromeMicrosoft EdgeSafari[4]。2017年11月,以上四个浏览器都开始实验性的支援WebAssembly[5][6]。2019年12月5日,在W3C制定《WebAssembly核心规范[7]》后,WebAssembly正式被认证为Web的标准之一[8]

设计[编辑]

最高指导目标[编辑]

在官方的一个github页面[9]与说明文件[10]中,阐述了WebAssembly的设计与实作原则,包含:

  1. 定义一个可移植,具有大小与载入高效率的二进制格式,作为编译标的。这个编译标的必须可以被编译至常见的平台,包含移动端物联网,并且可以善用硬件资源、有原生执行码的执行速度。
  2. 规格与实作:
    • 最初的MVP(Minimum Viable Product)与Asm.js有大略相等的功能,并以C/C++语言为优先;
    • 其他额外的特性最初集中在执行绪,零消耗的异常,和SIMD。这些额外的特性先以回馈和实验为主,包含C/C++以外其他语言的支持。
  3. 设计可以执行在现有的网络平台之内以及与之整合:
    • 保持无版本问题、特色测试、向后相容的网络平台
    • 在与Javascript相同的环境中执行
    • 允许从Javascript中同步呼叫
    • 强化同源(Same-origin)和安全性权限政策
    • 允许浏览器存取相同功能的Javascript API
    • 定义一个可人工读取,能和二进制格式互换的纯文字格式,以支援查看源代码
  4. 设计也可以用于非浏览器的嵌入式系统
  5. 制作大平台
    • 为WebAssembly建置新的LLVM后端与伴随的Clang接口
    • 推动其他WebAssembly的编译器与工具
    • 启用更多有用的工具

下一阶段要实作的特色[编辑]

在2017年推出第一个版本后,同时也列出了下一阶段将实作的特色[11][12]

官方的宣传[编辑]

Ending定律[编辑]

Ending定律也称为终结者定律, 它是Ending在2016年Emscripten技术交流会上给出的断言[13]

所有可以用WebAssembly实现的终将会用WebAssembly实现。

现在这个定律除了 WebAssembly 的支持者用做宣传之外看不到任何实现的迹象。

参见[编辑]

其他逐渐被舍弃的网页用户端技术与RIA

其他字节码

参考资料[编辑]

  1. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
  2. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
  3. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
  4. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
  5. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
  6. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
  7. WebAssembly核心规范页面存档备份,存于互联网档案馆
  8. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
  9. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
  10. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
  11. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
  12. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found
  13. package.lua第80行Lua错误:module 'Module:Citation/CS1/People' not found

外部链接[编辑]

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