W3Cコンソーシアム WebAssembly技術を推奨標準に位置付けることについて。WebAssemblyは、様々なプログラミング言語でコンパイルされたアプリケーションを実行するための、ブラウザに依存しない汎用的な低レベル中間コードを提供します。WebAssemblyは、ブラウザ間で高性能なウェブアプリケーションを作成するための、より有望で移植性の高い技術として位置付けられています。WebAssemblyは、ビデオエンコード、オーディオ処理、グラフィックスおよび3D操作、ゲーム開発、暗号化操作、数学計算、プログラミング言語の移植可能な実装の作成など、高性能が求められるタスクの解決に使用できます。
WebAssemblyは多くの点でAsm.jsに似ていますが、JavaScriptに縛られないバイナリ形式であるという点で異なります。WebAssemblyは明示的なメモリ管理を使用するため、ガベージコレクターを使用する必要がありません。WebAssemblyにJITを使用することで、ネイティブコードに近いパフォーマンスを実現できます。WebAssemblyの主な目標は、移植性、動作の予測可能性、そして異なるプラットフォームにおけるコード実行の同一性を確保することです。最近、WebAssemblyには次のような利点もあります。 ブラウザに限らず、あらゆるインフラストラクチャ、オペレーティング システム、デバイスで安全にコードを実行するためのユニバーサル プラットフォームとして。
W3C は、WebAssembly に関連する XNUMX つの仕様を標準化しています。
- — WebAssembly中間コードを実行するための低レベルの仮想マシンを記述します。WebAssembly関連のリソースは「.wasm」形式で提供されます。これはJavaの「.class」ファイルに似ており、静的データと、そのデータを操作するためのコードセグメントが含まれています。
- — 「.wasm」リソースのリクエストと実行のためのPromiseベースのAPIを定義します。WebAssemblyリソース形式は、ファイルが完全にダウンロードされる前に実行を開始するように最適化されており、Webアプリケーションの応答性を向上させます。
- JavaScriptとの統合のためのAPIを提供します。WebAssembly関数に値を取得したり、パラメータを渡したりできます。WebAssemblyの実行はJavaScriptセキュリティモデルに準拠しており、メインシステムとのすべてのやり取りはJavaScriptコードの実行と同じように実行されます。
今後は、以下のような WebAssembly 機能の仕様を準備する予定です。
- 共有メモリとアトミックメモリアクセスによるマルチスレッド。
- ループ実行の並列化を可能にする SIMD ベースのベクトル演算。
- WebAssembly コードからオブジェクトを直接参照するための参照型。
- 追加のスタックスペースを使用せずに関数を呼び出す機能。
- ECMAScript モジュールとの統合 - ECMAScript 6 仕様に準拠したモジュールとして JavaScript から WebAssembly コードをロードする機能。
- ガベージコレクターを使用した動作モード。
- デバッグ インターフェイス。
- (WebAssembly システム インターフェース) — オペレーティング システムと直接対話するための API (ファイル、ソケットなどを操作するための POSIX API)。
出所: オープンネット.ru
