Running C and Python Code on The Web

by syoyo

(via reddit.com)

Running C and Python Code on The Web
http://www.toolness.com/wp/?p=52

Adobe の lab(?) が llvm を使って C コードを tamarin 上で動かす仕組みを開発中で、それをデモしたらしい。

流れとしては、

1. llvm-gcc などで C コードを LLVM bitcode に変換
2. LLVM bitcode から tamarin bytecode(ABC) に変換
3. ABC を実行(tamarin runtime)

で実現するようで、(2) を今回作った模様。

bytecode(中間言語) -> bytecode(中間言語) 変換だから難しくはないけど、
よくやるなぁ. ってかそこまでするならもう VM は LLVM 一本で統一するのでいいんじゃなかろうか.
ABC -> tamarin JIT じゃパフォーマンスでないだろうし.

ただ web 向けを考えると LLVM のライブラリはそれなりにデカいので組み込みに向かないというのがネックかな.
LLVM の runtime infra(レジスタ割り当てとかの共通バックエンドライブラリ)を使わずに 自分で LLVM bitcode の interpreter or JIT を書くなら別だろうけど.

Advertisements