研究課題/領域番号 |
25280019
|
研究種目 |
基盤研究(B)
|
研究機関 | 東北大学 |
研究代表者 |
大堀 淳 東北大学, 電気通信研究所, 教授 (60252532)
|
研究分担者 |
上野 雄大 東北大学, 電気通信研究所, 助教 (60551554)
|
研究期間 (年度) |
2013-04-01 – 2018-03-31
|
キーワード | SML# / コンパイラ / 実装方式 / 最適化 / コード分析 |
研究概要 |
本研究の目的を達成する上での具体的な目標は以下の通りである.(1) 効率よいコード生成システム.不要なクロージャ生成を抑止し,効率良いコードを生成可能にする最適化方式の開発,および,汎用のコード生成システムであるLLVMバックエンドの開発する. (2) コンパイラの高速化技術.関数型言語で書かれたコンパイラの特性の分析を通じて,コンパイル時間の大幅な短縮を実現する技術を開発する. (3)実行時コード分析.コード位置情報を抽象化し,コンパイラが行う各中間言語の変換過程を,意味と型ばかりでなく,抽象的なコード位置情報をも保存する変換として洗練することによって,実行コード分析の枠組みを構築する. (4) ソースコード分析と可視化.ソースコード間の依存関係を表現する方式を構築し,大規模システムのソース構造の可視化ツール等の基礎なるソースコード分析の枠組みを構築する. これら課題の中で,平成25年度は主に,最も困難と思われた(1)LLVMバックエンドの実現,および,本研究を推進する上でも有用な(4)ソースコード可視化にとりくみ,(1)に関しては,LLVMバックエンドの意味論調査やSML#への接続可能性分析を完全に完了し,さらにそれらを基礎にLLVMバックエンドと整合性ある関数呼び出しに関する型主導コンパイル方式を構築し,それらを取り入れたSML#コンパイラのLLVMバックエンドの試作を成功させた.また(4)に関しては,コンパイラの行う名前解析処理のトレースを取ることによって全ての名前の定義と参照関係を同定し,それら定義・参照関係を基礎としたソースファイルの依存関係の可視化の枠組み,および,変数の依存関係をエディタから可視化する枠組みを構築し,さらに,ツール試作に成功し,想定した以上の進展を見た. 項目(2)および(3)に関しては,予備的な調査をおこなった.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
1: 当初の計画以上に進展している
理由
上項目に記載のとおり,本プロジェクトでもっとも困難か中心をなす課題であるLLVMバックエンドの試作を完成させることができ,全体として,想定以上の進捗を達成していると言える.
|
今後の研究の推進方策 |
今後,これら2項目の研究を一層加速するとともに,他項目の本格的な推進を開始しる.平成26年度は,具体的には,以下の研究を遂行する. (1) LLVMコード生成器.x86-32アーキテクチャ向けの堅牢なLLVMバックエンドを完成させ,さらに他アーキテクチャ向けのバックエンド構築の問題点を検討し,x86-64向けの設計を行う. (2) 各コンパイルフェーズ毎のコンパイル時間に関する詳細な分析を実施する. (3) 既存の手続き型言語のツール等の分析を行い,SML#の実行コードの速度の測定に関する可能な方法論の検討を行う. (4) ソースコード可視化ツール.昨年度試作したツールを実用的なツールへのと完成させ,SML#コンパイラへ組み込むとともに,より広範囲な情報の可視化ツールへと拡張する.
|
次年度の研究費の使用計画 |
本年度は,基礎的な研究に注力したため,PC関連機器の購入が10万円ほど想定より少なくなったため. 次年度に,プログラム開発等に必要なPC関連品の購入に充てる予定である.
|