LoginSignup
10
6

More than 5 years have passed since last update.

WebAssembly Explorer の紹介

Posted at

この記事は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>

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の開発者

10
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6