WebAssembly 単語

3件

ウェブアセンブリィ

1.1千文字の記事
  • twitter
  • facebook
  • はてな
  • LINE

WebAssemblyとは、ブラウザ上でJavaScript(スクリプト言語)の代わりにバイナリ(アセンブラ)を実行したら高速化するんじゃないかな、みたいな感じである。

拡張子は.wasm

概要

JavaScriptユーザー数の多さ(ほとんどのWebサイトで使用されている)もあって最適化が進み、スクリプト言語最速と言われる準に達している。しかし、いかんせんスクリプト言語である以上、事前コンパイルされているコンパイル言語の実行速度との間には超えられない壁がある(Juliaはこのを越えたと語しているが、用途も違うし、それはまた別の話。)。

WebAssemblyはこの問題を解消するべくブラウザ上でネイティコードに近いバイナリを実行するための低プログラミング言語として登場した。2015年に発表され、2017年にはFirefox, Chrome, Safari, Edgeといったブラウザが対応するようになった(IEはもちろん非対応)2019年にはW3C勧告になり、Web標準としての地位を獲得した。

特色

実行ファイルは(Javaバイトコード的な中間コードの)バイナリデータの形で提供され、仮想マシンネイティコードに変換後実行される。これだとJavaScriptと同じ様に聞こえるが、ネイティコードに近い状態で仮想マシンに渡されるので、実行時に構文解析から始めるJavaScriptよりも高速に動作する。

機械語と同様、普通人間には読めないので、アセンブリ言語に近い表現方式も存在する。

実行環境

上記ブラウザ以外にもローカルJavaScript実行エンジンであるNode.jsDenoからも実行可。いずれの環境でもJavaScriptを介して呼び出す方式である。

開発環境

LLVMビットコードをWebAssemblyに変換するバックエンドがあることから、LLVMに対応したプログラミング言語ならばWebAssemblyの開発が可(なはず)。

初期にはDOMの操作は対外とされ、JavaScriptの処理のうち計算量の多い部分を置き換える使い方が想定されていたが、2019年あたりからWebAssembly対応の各種言語でDOMの操作のサポートが進んできている。

関連リンク

関連項目

この記事を編集する
関連記事

親記事

子記事

  • なし

兄弟記事

掲示板

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
もっと見る

急上昇ワード改

最終更新:2025/03/29(土) 21:00

ほめられた記事

最終更新:2025/03/29(土) 20:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。