C言語をブラウザで実行、Ruby/Python/Perlも然り

 

Mozillaの研究部門に所属しているAtul Varma氏のブログにおいて、Running C and Python Code on The Webのタイトルで興味深い内容が紹介されている。タイトルだけ見るとWebアプリケーションでC言語やPythonのコードを実行すると言う話のようだが…

同氏のブログによれば、Adobe Systems, Scott Petersen氏が現在C言語で作成したコードをTamarin仮想マシンで実行できるようにするツールチェインを開発しており、近々オープンソースソフトウェアとして公開するという。TamarinはAdobeからMozillaへ寄贈されたJavaScriptエンジンだ。Firefox 3.0には取り込まれていないが将来的にはTamarinベースのJavaScriptエンジン実装がFirefoxに取り込まれるとみられている。時期は未定だがFirefox 4からの導入が濃厚だろう。

Scott Petersen氏の取り組んでいる内容は次のようなもの。

  1. CソースコードをLLVM命令へ変換する(llvm-gccかまたはこれのカスタム版か)
  2. LLVM命令をActionScriptが実行できる仮想マシン向けの命令へ変換
  3. Adobe FlashにActionScriptをかませることで自動的にTamarinバイトコードへ変換
  4. TamarinバイトコードはTamarin JITによって実行時にネイティブコードへ変換され実行

ActionScriptに変換されてからは、いくつかの拡張は必要になるものの基本的に現在実現されている処理に載せるだけだ(3. 4.が該当)。彼の取り組みで注目すべきところは、CをいったんLLVM命令に変換したあとでActionScriptへ変換しているところにある。ActionScriptはECMAScriptの一種で、JavaScriptによく似ている。

Scott Petersen氏によって開発されているツールチェインはFlashにアクセスするためのCライブラリやカスタムPOSIXシステムコールAPIなども含められているという。またオーバーヘッドの少ないメモリマッピングも検討されているようだ。

これはC言語で開発されたアプリケーションがAdobe Flashで動作するようになることを意味している。Scott Petersen氏のデモンストレーションではFlashで動作するQuakeゲームやゲームエミュレータなどが示されたという。さらに同氏はC言語でコンパイルされたLua、Ruby、Perl、PythonがFlashで動作している様子も示したという。

AdobeやScott Petersen氏から正式発表はまだおこなわれていないため、事の真相については定かではないが、これが事実であればFlashは強力なサンドボックスプラットフォームになる可能性が高い。FlashでCベースのアプリケーションが動作するようになるほか、RubyやPython、Perlスクリプトが使えるようになる。もちろんOSネイティブに動作する場合と比較して制限ははいるだろうが、強力なプラットフォームが誕生することは間違いないだろう。今後の発表に期待したい。

関連キーワード


転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

「ぼのぼの×HELLO KITTY」新作や「ぼのちゃん」初グッズを夏コミで販売
[15:46 7/31] ホビー
[高橋愛]“ハリポタ愛”語る 「一緒に年を重ねている感じ」
[15:26 7/31] エンタメ
[真田丸]長宗我部盛親役の阿南健治がゆかりの地・高知へ 「龍馬だけではなく盛親も応援して」
[15:20 7/31] エンタメ
カリスマ実演販売士・レジェンド松下の「実力」
[15:05 7/31] エンタメ
『妖怪ウォッチ』最新版「ドリーム」発売、メダルでゲーム・筐体と連動
[15:00 7/31] ホビー

求人情報