デジタル人材の育成

未踏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のような言語でコンパイルして性能を高めることは易しくないが、井出君はそれを理解し、対策を検討している。

達成は決して容易ではないが、言語処理系の開発経験もあり、自らの動機に基づく提案なので、期待している。