EmscriptenはLLVMをJavaScriptに変換するソフトウェア。PythonやLuaをWebブラウザ上で実行できる。

EmscriptenはPython/JavaScript製のオープンソース・ソフトウェア。LLVM(Low Level Virtual Machine)という技術がある。ソースコードをアーキテクチャに依存しない中間コードに変換し、最適化した上で各マシン向けにネイティブなコードを出力することでより効率的なバイナリを作成できるというものだ。


Python実行例

つまりLLVMが生成する中間コードを使えば、元々の言語は気にせずに動くという訳だ(おそらく)。それを実証してくれるプロジェクトがEmscriptenだ。

EmscriptenはLLVMの中間コードをJavaScriptに変換するソフトウェアだ。つまり中間コードにさえ変換できれば、それをJavaScriptに変換してWebブラウザ上で実行できるというものだ。例えばPython、Luaといった言語をWebブラウザ上で書いて実行できる。


FreeType

さらにPoppler(PDFレンダリングライブラリ)やOpenJPEG、FreeTypeといったライブラリもLLVM上で使えるようにしており、JavaScriptからPDFやJPEGを出力することもできる。百聞は一見にしかず、これは体験してみる価値があるだろう。

MOONGIFTはこう見る

JavaScriptでVMを作って別なプログラミング言語を動かすという試みは幾つかある。だがまだまだ実験レベルという段階だ。Emscriptenはアプローチこそ違えど、Webブラウザ上で別な言語を動かすというのは同じだ。どちらかと言えばCoffee Scriptに近いかも知れない。

WebブラウザではJavaScriptしか使えないという現状はとても良い、と言える訳ではない。プログラマが自由に言語を選べる環境こそ望ましい。JavaScriptが他の環境に入ってくるのと同様に、他の言語もWebブラウザ上に乗り込んでいく様子もなかなか面白い。

デモ

kripken/emscripten - GitHub