2015 Fiscal Year Annual Research Report
ML系多相型言語SML#の実用化技術に関する基礎研究
Project/Area Number |
25280019
|
Research Institution | Tohoku University |
Principal Investigator |
大堀 淳 東北大学, 電気通信研究所, 教授 (60252532)
|
Co-Investigator(Kenkyū-buntansha) |
上野 雄大 東北大学, 電気通信研究所, 助教 (60551554)
|
Project Period (FY) |
2013-04-01 – 2018-03-31
|
Keywords | SML# / コンパイラ / 実装方式 / 最適化 / コード分析 |
Outline of Annual Research Achievements |
本研究の目的を達成する上での具体的な目標は以下の通りである.(1) 効率よいコード生成システム.効率良いコードを生成可能にする方式の開発および汎用のコード生成システムであるLLVMバックエンドの開発する. (2)コンパイラの高速化技術.関数型言語で書かれたコンパイラの特性の分析を通じて,コンパイル時間の大幅な短縮を実現する技術を開発する. (3)実行時コード分析.コンパイラが行う各中間言語の変換過程を,意味と型ばかりでなく,位置情報をも保存する変換として洗練することによって,実行コード分析の枠組みを構築する. (4) ソースコード分析と可視化.ソースコード間の依存関係を表現する方式を構築し,大規模システムのソースコード分析の枠組みを構築する.(5) 高信頼WEBフレームワーク.ML系高信頼言語でWEBアプリケーションを効率よく開発するためのフレームワークの型理論と実装技術を構築する.この最後の項目は,本研究の成果の社会展開を意図し,昨年度からあらたに追加したものである. これら課題の中で,平成27年度は主に,(1)に関しては,LLVM バックエンドの完成度をさらに高め,LLVMの汎用のコード生成システムの機能を活かし64ビットアーキテクチャ向けのバックエンドを完成させた.さらに新たに,並行ゴミ集め(GC)を完成させ,マルチコア上のネイティブスレッドサポートを実現するコンパイラを完成させSML#3.0.0版としてリリースした.また,(2),(3),(4)に関しては,昨年に引き続き,外部関数の並列実行に関する性能評価やコード可視化ツールに関する研究を行った.(5) WEBアプリケーションにとって必須の機能である外部とのデータ交換に関しては,JSON データをML系関数型言語から型安全かつ高水準に扱う機能の型理論とコンパイル方式を開発することに成功した.
|
Current Status of Research Progress |
Current Status of Research Progress
1: Research has progressed more than it was originally planned.
Reason
上項目に記載のとおり,並行GCおよびマルチコア上のネイティブスレッドサポートを含む64ビットアーキテクチャ向けのLLVMバックエンドおよび実行時処理系を完成させ,SML#3.0.0版をリリースできた.ML系高信頼言語におけるオブジェクトを動かさない並行GCは,世界的にも新規性の高い機能であり,それらを装備した実用的なコンパイラをリリースできた成果は,特筆すべきものと考える.さらに,昨年度から新たに開始したWEBアプリケーションフレームワークの研究開発のおいても,JSON データの扱いに関する世界的にも新規性ある方式を確立できた.これらは当初期待した成果を超えるものであり,全体として,想定以上の進捗を達成していると言える.
|
Strategy for Future Research Activity |
今後,これらの研究を一層加速する.平成28年度は,具体的には,以下の研究を遂行する. (1) 平成27年度に完成させたLLVMバックエンドと実行時処理系を基礎に,並行GC下のマルチスレッドプログラムをもターゲットとし,コンパイラの中間言語を系統的に取り扱う理論の構築を行う. (2) 前年度に引き続き,外部関数呼び出しの最適化に関する研究開発を行う. (3),(4) 平成27年度の成果である並行GCおよびネイティブマルチスレッド機能をも含むプログラムに関するプロファイルおよび可視化に関する研究を開始する. (5) WEBアプリケーションフレームワークに関しては,昨年度に構築したJSONを宣言的に扱う機能を完成させ,この機能を取り入れたSML#コンパイラのリリースを目指す.さらに,これら機能を基礎に,より堅牢なWEBアプリケーション構築に資する理論と方式の研究開発を推進する.
|
Causes of Carryover |
年度当初の予定では,可視化やプロファイラ等のツール開発等のプログラミング補助等の目的での人件費等を支出する予定であったが,本年度は難易度の高いLLVMバックエンド等の開発に注力しツール等開発補助の支出を見送ったため.
|
Expenditure Plan for Carryover Budget |
次年度以降,上記ツール等の開発のためのプログラミング補助等の目的で有効に使用する予定である.
|
Research Products
(7 results)