未踏IT人材発掘・育成事業(ユース):2010年度採択プロジェクト概要(井出PJ)
1.担当プロジェクトマネージャー
首藤 一幸(東京工業大学 大学院情報理工学研究科 数理・計算科学専攻 准教授)
2.採択者氏名
-
チーフクリエータ
井出 真広(横浜国立大学大学院) -
コクリエータ
なし
3.採択金額
- 1,792,000円
4.テーマ名
- JavaScriptのGCCフロントエンドの開発
5.関連Webサイト
- なし
6.申請テーマ概要
JavaScriptはWebブラウザ上に実装されているスクリプティング言語で、ほとんどすべてのWebブラウザに実装されている。JavaScriptの実行性能の向上により、デスクトップアプリケーションと遜色ない、大規模Webアプリケーションを実現することが可能となったため、JavaScriptはWebアプリケーションを構築する際には必要不可欠な存在となって来ている。
クライアントサイドのWebアプリケーションはそれぞれ基盤となるライブラリ、フレームワークの上に構築され、その上にそれぞれのWebアプリケーションのためのコードが記述される。ここで、各アプリケーションはブラウザ上で実行される際に、ライブラリ、フレームワークはアプリケーションごとに複製されて実行されるため、メモリ効率があまりよくないと言える。
本提案では、JavaScriptのGCCフロントエンド gccjsの開発を行う。
gccjsを用いてプログラムの実行前にJavaScriptコードを機械語へコンパイルすることで、アプリケーション間でコードを共有し、プログラムサイズを小さくでき、レスポンス性能が高く、ロード時間の短いWebアプリケーションの構築につながるのではないかと考えている。
7.採択理由
今日、Webブラウザ上で動作するプログラムは、おしなべてJavaScript言語で書かれるようになった。 世界中が、実行時(JIT)コンパイルという方式で、JavaScriptプログラムの高速化にしのぎを削っている。 提案は、実行前にコンパイルを済ませてしまう(AOT)コンパイラを開発しようというものである。
AOTコンパイラにはJITコンパイラとは違ったメリット(例えばコードのプロセス間共有)があり、また、実際に開発することで、その性能、使い勝手等も明らかになろう。
JavaScriptのような言語でコンパイルして性能を高めることは易しくないが、井出君はそれを理解し、対策を検討している。
達成は決して容易ではないが、言語処理系の開発経験もあり、自らの動機に基づく提案なので、期待している。