WebAssemblyとは、ブラウザ上でJavaScript(スクリプト言語)の代わりにバイナリ(アセンブラ)を実行したら高速化するんじゃないかな、みたいな感じである。
拡張子は.wasm
JavaScriptはユーザー数の多さ(ほとんどのWebサイトで使用されている)もあって最適化が進み、スクリプト言語最速と言われる水準に達している。しかし、いかんせんスクリプト言語である以上、事前にコンパイルされているコンパイル言語の実行速度の間には超えられない壁がある(Juliaはこの壁を越えたと豪語しているが、それは用途も違うし、また別の話。)。
WebAssemblyはこの問題を解消するべくブラウザ上でネイティヴコードに近いバイナリを実行するための低水準プログラミング言語として登場した。2015年に発表され、2017年にはFirefox, Chrome, Safari, Edgeといった主要ブラウザが対応するようになった(IEはもちろん非対応)。2019年にはW3C勧告になり、Web標準としての地位を獲得した。
LLVMにビットコードをWebAssemblyに変換するバックエンドがあることから、LLVMに対応したプログラミング言語でWebAssemblyの開発が可能(なはず)。初期にはDOMの操作は対象外とされ、計算量の多い部分をで置き換える使い方が想定されていたが、2019年あたりからWebAssembly対応の各種言語でDOMの操作のサポートが進んできている。
実行ファイルは16進数のバイナリデータの形で提供され、仮想マシンで実行される。これだとJacaScriptと同じ様に聞こえるが、ネイティヴコードに近い状態で仮想マシンに渡されるので、実行時に構文解析から始めるJavaScriptよりも高速に動作する。
普通の人間には読めないので、アセンブリ言語に近い表現方式も存在する。
急上昇ワード改
最終更新:2026/01/23(金) 03:00
最終更新:2026/01/23(金) 03:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。