WebAssembly |
辞書:電算用語の基礎知識 プログラミング言語編 (PTPROGN) |
読み:ウェブアセンブリー |
外語: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符号化が採用されており、これはAndroidのDalvikおよびART(Android Runtime)に似ている。
WASMバイナリーの機械語、つまりWebAssemblyが動作する仮想計算機(仮想マシン)用の機械語は、1バイト単位の可変長である。これ自体は人間では読みにくいので、1対1で対応するアセンブリ言語も用意されている。
HTML5 |
WebAssembly自体はHTML5とは直接関係ないが、併用されることは確実である。
Adobe FlashからHTML5にブラウザーゲームは移行が必要となるが、ゲームは速度が求められるため、将来的にはWebGL+WebAssemblyで作られることが多くなると見込まれている。
リンク |
通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022) Search System : Copyright © Mirai corporation Dictionary : Copyright © WDIC Creators club |