DX Column

2021年11月6日

#WebAssembly – 知ったかテックワード!君もIT博士

カテゴリー:

タグ:

WebAssembly(ウェブアセンブリー)は、Webブラウザなどで高速・安全に実行できる仮想命令セット、およびそのための実行環境のこと。すでに、Firefox・Chrome・Safari・Edgeなど主要なブラウザに搭載されている。

ブラウザは、JavaScriptというプログラミング言語を実行して、ゲームや高機能なWebアプリケーションを実現している。そのためにJavaScriptを実行する仮想マシンを搭載しているんだ。

これは、ブラウザでプログラムを実行するには必ずJavaScriptを使わなければならないということ。でも、特定のプログラミング言語に縛られていると、高度なプログラミング技術や他のプログラミング言語の技術的蓄積を利用しにくいという欠点がある。

そこで、ブラウザに組み込まれた新しい仮想マシンが「WebAssembly」なんだ。

本来アセンブリ言語/アセンブラは、CPUの機械語と1対1対応したプログラミング言語のこと。C言語やJava・Ruby・Pythonといったプログラミング言語は人間に分かりやすい高水準プログラミング言語と呼ばれるのに対して、アセンブリ言語はハードウェアに近いという意味で低水準プログラミング言語と呼ばれる。

WebAssemblyがターゲットにしているのは、Webブラウザになる。そのために高速・安全に実行できる仮想命令セットと実行環境を提供している。命令セットは、アセンブリ言語風のバイナリー形式(2進数)になっている。

実際に使う場合には、C/C++・C#・Rustなどの高水準プログラミング言語で記述したソースコードをWebAssemblyの形式に変換(コンパイル)してブラウザ上で実行するんだ。

ちなみに現在のJavaScriptは、デスクトップアプリケーションやツール・サーバー用途でも利用される。JavaScriptの仮想マシンを用意するだけで、WindowsでもMac・Linuxでも同じプログラムが動作するからね。同じようにWebAssemblyも、デスクトップやサーバーでの利用も検討されているよ。

関連ページ

おまけのコント

ウサギ:・・・もしもし

カエル:はい、こちらカエルですが。

ウサギ:・・・そちらで、いろいろアッセンしてくれると聞いたんだが。

カエル:何のことですか?

ウサギ:しらばっくれるな。ぜひ、仕事を斡旋して欲しいんだ。

カエル:まあ、ご希望によっては・・・。

ウサギ:誰でもできる楽な作業で、給料の良い仕事。

カエル:そういうのは、なかなかねぇ。

ウサギ:じゃあ、右から左に紹介するだけで手数料がもらえるヤツ。

カエル:最近ニュースになっている◎◎◎◎が××××になってる奴かな?

ウサギ:シーっ、声が大きい。それだ!それを回してくれ。

カエル:そういうのはフツーに捕まるやつだからねぇ。誰かの紹介がないと。

ウサギ:コネはないけど、深く絡み合ったウサギの巣穴なら、いくらでもあるぞ。

カエル:ちょっとズブズブな感じだね。