MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Emscripten

Emscripten は LLVM のバイトコードの JavaScript へのコンパイラです。LLVM バイトコードは、例えば C/C++ を Clang でコンパイルすることで出力できます。バイトコードを JavaScript に変換することで、それらを Web ブラウザ上で動作させられます。

重要:このページには Emscripten の簡単な概要のみが記載されています。詳しく知るには, Emscripten の公式 WiKi をご覧ください。

Emscripten を利用することで以下のことが可能となります。

  • C や C++ のコードを JavaScript へコンパイルできます
  • LLVM バイトコードに出力された他の言語のコードを、JavaScript へコンパイルできます。
  •  C/C++ で記述された他の言語の処理系を JavaScript へ変換することで、その言語のコードを間接的に実行できます。既に Python や Lua の処理系が変換されています。

Emscripten を利用することで、ネイティブコードを即座に Web 向けにできます。いくつもの独立した実装をもつ標準化されたプラットフォームを利用することで、PC から iPad まで様々な環境で動作させられます。

つまり Emscripten を利用することで、手動で JavaScript への移植をする必要はなくなります。また JavaScript を学ぶ必要もなくなります。また既存のネイティブユーティリティやライブラリを利用できるため、 Web 開発者にとっても有益です。

実際にポータブルな C/C++ コードベースは Emscripten を用いて JavaScript へコンパイル可能です。その範囲は、グラフィックスや音声の再生、ファイルの読み込みと処理を必要とするハイパフォーマンスなゲームから、Qt のようなアプリケーションフレームワークまでに及びます。

Emscripten は高速なコードを生成します。標準の出力フォーマットは、高度な最適化を可能とする asm.js となっています。

付記:興味をお持ちの方は 他の Emscripten に関する記事を読み、デモをご覧ください。その後、利用をはじめる と良いでしょう。

MDN 上の他の記事

  • ゲーム開発において Emscripten はよく利用されています。 Games zone には、ゲーム開発に関する記事がまとまっています。
  •  Emscripten の技法には、Emscripten WiKi にはない、Emscripten に関する有用なアイディアがまとまっています。

ドキュメントのタグと貢献者

 このページの貢献者: shuuji3, chikoski
 最終更新者: shuuji3,