WebAssembly

読み:ウェブアセンブリー
外語:WASM: WebAssembly 英語
品詞:名詞

Webブラウザー用のクロスプラットフォームなプログラミング言語の一つ。WASMとも。

目次

Webブラウザー用のクロスプラットフォームなプログラミング言語は、幾つかが作られたが最終的にはJavaScriptただ一つが生き残った。

JavaScriptは高級言語であるが、WebAssemblyは低級言語であり、このバイナリーがあらゆるブラウザー上で動作することを目標としている。発想自体はJavaに近いとも言える。

この目的のために、WebAssemblyはasm.jsとPortable Native Client(PNaCl)をベースに開発が開始された。

主要WebブラウザーメーカーであるApple、Microsoft、Google、Mozillaすべてが参画して開発しているため、完成後は標準として使われることが既に決まっている。

コンパイル

C/C++などを、WASMバイナリーフォーマットにコンパイルして使用する。

コンパイルにはclang/LLVMなどを使用する。

つまりフロントエンドにclangなど各言語に適合するもの、バックエンドにLLVMを使用することが想定されて開発されているため、LLVMに対応できるフロントエンドが用意できれば、理論上はあらゆるプログラミング言語が利用できることになる。

ただ開発中のこれを著している時点では、LLVMはまだWASMバイナリーフォーマットを出力できないため、LLVMは中間層として用い、バックエンドとしてbinaryenが使われている。

LLVMとしては、LLVM 5.0からWASMバイナリーフォーマットの出力に正式対応する予定である。

WASMバイナリー

WASMバイナリーは、8ビットを1バイトとするスタックマシンとなっており、これもJavaに似ている。数値についてはLEB128符号化が採用されており、これはAndroidDalvikおよびART(Android Runtime)に似ている。

WASMバイナリーの機械語、つまりWebAssemblyが動作する仮想計算機(仮想マシン)用の機械語は、1バイト単位の可変長である。これ自体は人間では読みにくいので、1対1で対応するアセンブリ言語も用意されている。

HTML5

WebAssembly自体はHTML5とは直接関係ないが、併用されることは確実である。

Adobe FlashからHTML5にブラウザーゲームは移行が必要となるが、ゲームは速度が求められるため、将来的にはWebGL+WebAssemblyで作られることが多くなると見込まれている。

関連する用語
HTML5
JavaScript

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club