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