W3C 授予 WebAssembly 推荐标准地位

W3C联盟 объявил 给予 WebAssembly 技术推荐标准的地位。 WebAssembly 提供独立于浏览器的通用低级中间代码,用于运行从各种编程语言编译的应用程序。 WebAssembly 被定位为一种更有前景的跨浏览器可移植技术,用于创建高性能 Web 应用程序。 WebAssembly 可用于性能密集型任务,例如视频编码、音频处理、图形和 3D 操作、游戏开发、加密操作、数学计算以及创建编程语言的可移植实现。

WebAssembly 在很多方面与 Asm.js 相似,但不同之处在于它是一种不依赖于 JavaScript 的二进制格式。 WebAssembly 不需要垃圾收集器,因为它使用显式内存管理。 通过将 JIT 用于 WebAssembly,您可以获得接近本机代码的性能水平。 WebAssembly 的主要目标之一是确保可移植性、可预测的行为以及在不同平台上相同的代码执行。 最近 WebAssembly 还 前进 作为在任何基础设施、操作系统和设备(不限于浏览器)上安全执行代码的通用平台。

W3C 标准化了与 WebAssembly 相关的三个规范:

  • WebAssembly核心 — 描述用于执行 WebAssembly 中间代码的低级虚拟机。 WebAssembly 相关资源采用“.wasm”格式,类似于 Java“.class”文件,包含静态数据和用于处理该数据的代码段。
  • WebAssembly Web API — 定义了基于 Promise 机制的编程接口,用于请求和执行“.wasm”资源。 WebAssembly 资源格式经过优化,无需等待文件完全加载即可开始执行,从而提高了 Web 应用程序的响应能力。
  • WebAssembly JavaScript 接口 — 提供用于与 JavaScript 集成的 API。 允许您获取值并将参数传递给 WebAssembly 函数。 WebAssembly 的执行遵循 JavaScript 安全模型,所有与主系统的交互都以与执行 JavaScript 代码相同的方式进行。

未来,我们计划为此类 WebAssembly 功能准备规范,例如:

  • 具有共享内存和原子内存访问的多线程;
  • 基于SIMD的向量运算,允许循环执行的并行化;
  • 用于直接从 WebAssembly 代码引用对象的引用类型;
  • 能够调用函数而无需在堆栈上花费额外的空间;
  • 与 ECMAScript 模块集成 - 能够从 JavaScript 加载 WebAssembly 代码作为符合 ECMAScript 6 规范的模块;
  • 垃圾收集模式;
  • 调试接口;
  • 瓦西 (WebAssembly 系统接口)- 用于与操作系统直接交互的 API(用于处理文件、套接字等的 POSIX API)。

    来源: opennet.ru

添加评论