研究課題/領域番号 |
16K00103
|
研究機関 | 高知工科大学 |
研究代表者 |
鵜川 始陽 高知工科大学, 情報学群, 准教授 (50423017)
|
研究分担者 |
岩崎 英哉 電気通信大学, 大学院情報理工学研究科, 教授 (90203372)
|
研究期間 (年度) |
2016-04-01 – 2019-03-31
|
キーワード | 言語処理系 / 仮想機械 / ガベージコレクション / 組込みシステム / JavaScript |
研究実績の概要 |
本研究の目的は,組み込みシステムで動作する高性能なJavaScript処理系を研究することである.そのために,システム毎にそのシステムで実行されるプログラムに特化したVMを作れるような仕組みを研究開発している.研究代表者と分担者らがサーバサイドJavaScript処理系として開発してきたJavaScript仮想機械(VM)とコンパイラをもとにして,(1)VMの仕様からプログラムに特化したVMのインタプリタを合成する仕組の開発,(2)ガベージコレクション(GC)等の機能のモジュール化を行う計画である. 平成28年度の成果は次のとおりである.まず,プログラムに合わせたデータ型の表現方法を指定して,そのように表現されたデータを扱うインタプリタをVMの仕様から合成する仕組みを試作した.例えば,配列を頻繁に使うプログラムであればポインタに参照先が配列であることを示すタグを付けることで高速化するというようなVMの実装の変更が容易に行える.この成果はプログラミングシンポジウムで発表した. 次に,本研究に利用できるように研究代表者と分担者らが開発してきたJavaScript処理系の整備を行った.その成果の一部は電気関係学会四国支部連合大会で発表した. また,これまでライブラリに依存していたGCを実装した.実装したGCは単純なマークスイープGCであるが,一時的なオブジェクトを多く使うプログラムのために世代別GCのモジュールを開発するなど,今後の拡張が容易になるようにVMとGCのインタフェースを設計している. 最後に,組み込みシステム向けCPUであるARM等の弱いメモリモデルのCPUで開発したVMが正しく動作することを検証するために,モデル検査器用のライブラリを開発し,弱いメモリモデルを考慮したモデル検査を可能にした.この成果はソフトウェア工学の基礎ワークショップで発表した.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
1: 当初の計画以上に進展している
理由
平成28年度に計画していた4つの研究項目について,(1)IoTデバイスで動作する既存のJavaScript処理系の調査は順調に進んでいる.また,(2)研究代表者と分担者らが開発してきたJavaScript処理系の整備も順調に進んでおり,特に重要と考えていた独自のGCを搭載し,GCライブラリであるlibgcを不要にする改修は完了している.さらに,(3)インタプリタの仕様を記述するドメイン特化言語(DSL)の試作も完了し,計画を前倒ししてDSLからインタプリタを生成するツールの試作も完了している.ただ,(4)メッセージパッシングモデルの通信ライブラリの試作は,他の研究項目に注力したため遅れている. この他,計画にはなかったが,GCなどアルゴリズムが複雑なVMの主要機能の信頼性と開発効率を高めるためにモデル検査が有用であると考え,ソフトウェアモデル検査のためのライブラリを開発した. 以上より,計画より遅れている項目もあるものの,全体としては計画と同等以上に進展している項目が多く,特に研究の中心的なテーマのひとつである上記(3)が計画を前倒ししているため,計画以上に進展していると判断する.
|
今後の研究の推進方策 |
平成29年度は(1)平成28年度に行ったDSLで記述されたVMの仕様からインタプリタを生成するツールの試作の経験を基にして,実用に耐えうるVM自動生成ツールの設計する.DSLで記述できる範囲を拡大し,試作ツールでは対応できていない型ディスパッチ後の処理も,そのVMで実行するプログラムに特化して最適化できるようにする.さらに,そのVMで実行するプログラムのプロファイル結果なども利用して効率のよいコードを生成できるようにする.また(2)GCや通信機能などのモジュールを拡充する.特に世代別GCのモジュールを実装する.これと並行して(3)コンパイラが生成するコードの最適化やVMの実装の改良もすすめる.その際,アルゴリズムの検証が必要になれば,そのために必要なモデル検査関連のツールやライブラリの開発も必要に応じて行う.
|
次年度使用額が生じた理由 |
Skype等のコミュニケーションツールや情報共有ツールを有効活用して打合わせを行ったため,旅費が少なく抑えられた.そのため,来年度の対外発表旅費等として残すこととした.
|
次年度使用額の使用計画 |
来年度に予定している成果発表にかかわる旅費,会議参加費などの費用として使用する.
|