翻訳
WebAssembly

WebAssembly Explorer の紹介

More than 1 year has passed since last update.

この記事はHacks blogの記事、"Previewing the WebAssembly Explorer"の抄訳です。

WebAssemblyは、Webのためのクロスブラウザな、新しいプログラムのファイルフォーマットです。その性質についてはLin Clarkの連載、"A aartoon intro to WebAssembly"でお読みいただけます。JavaScriptと異なり、WebAssemblyはバイナリフォーマットです。つまり開発者がWebAssemblyについて学習する場合や、実験する場合は新しいツールが必要となります。そのようなツールの1つが、Mozillaの開発したWebAssemlby Explorerです。

このビデオは、CやC++のプログラムをコンパイルして、WebAssemblyを出力するというWebAssembly Explorerの基本機能を解説しています。

Preview of the WebAssembly Explorer<br>
<br />

WebAssemblyとWebAssembly Explorerの長所の一つは、開発者がコードに対してなされた最適化処理の結果を見られることにあります。例えば、ビデオではWebAssemlbyコンパイラがC言語の型情報を利用して、除算とより効率的なビットシフトとを使い分けています。JavaScriptでは、ブラウザのJITコンパイラが偶然同じ最適化を行うことがあります。しかしそこには何の保証もありません。事前コンパイル(AOT)は同時に楽観的なJITコンパイラでは必要な観察とプロファイリングによるオーバヘッドを避けることもできます。

WebAssembly Explorerは学習ツールとしてはすばらしいのですが、まだ開発初期段階にあるため、複雑なプログラムには向いていません。製品レベルのコンパイラを必要とする方は、Emscriptenを検討した方がいいでしょう。元々asm.jsを出力するために作成されたコンパイラではありますが、拡張され、WebAssemblyも出力できるようになっています。

WebAssembly ExplorerのソースコードはGitHubで公開されています。また今週後半(訳注:元記事が公開されたのは2017年3月6日)公開されるFirefox 52ではWebAssemblyを標準で利用できるようになっています。そちらを使えばWebAssemblyについて実験が行えます。


Dan Callahanについて

Mozillaのディベロッパーリレーションチームのエンジニア。元Mozilla Personaの開発者