2016 Fiscal Year Research-status Report
Project/Area Number |
15K15966
|
Research Institution | Tohoku University |
Principal Investigator |
松田 一孝 東北大学, 情報科学研究科, 准教授 (10583627)
|
Project Period (FY) |
2015-04-01 – 2019-03-31
|
Keywords | プログラミング言語 / 関数プログラミング / プログラム変換 / 双方向変換 / 領域特化言語 |
Outline of Annual Research Achievements |
本年度は,前年度に得られた知見を活かし,高階双方向変換プログラミング言語の作成に取り組んだ.双方向変換とは,通常の順方向の変換と,変換後のデータに対する更新を元データへと書き戻す逆方向の変換の二つからなる.双方向変換は,ビュー更新や異なる形式のデータの同期等に応用を持つ.双方向変換には通常の意味での高階双方向変換が存在しないことが知られており,これまで高階双方向変換プログラミング言語は知られていない.
研究代表者はKent大のMeng Wang氏と協力し,前年度の提案手法[Matsuda&Wang. ICFP 15]を拡張し,高階双方向プログラミング言語の作成を行った.前年度の成果においては,元データに反映できる更新の種類およびどう更新するかの記述に制限があった.特にリストの挿入や削除といった構造に関する更新の反映は難しかった.そこで,既存の枠組みの知見を利用し,双方向case式を言語に導入することで問題の解決を図った.研究代表者らは双方向case式を含む高階関数プログラミング言語の構文と型システムを設計し,また言語の意味を形式化した.また,アイデアの実装を行い,いくつかの例をその言語の上で実装することで有効性の評価を行った.
また,グラフを扱う双方向プログラミング言語の設計における知見を得るため,研究代表者は東大の浅田和之氏と協力し,等価性が双模倣で定義されるようなグラフに対するプログラミング言語の設計を行った.この言語はUnCALというグラフ変換言語を元にしているが,グラフを扱うため必要な「特別な」言語要素がなく,よく知られた言語要素のみからなる制限された関数型言語となっている.そのため,UnCALグラフ変換に対する,双方向化を含むプログラム変換などの,既存のプログラム操作技法の適用可能性の向上が期待できる.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
本年度は主な目標としては構造に対する変更の反映について議論する計画であった.
当初予測した方法と異なる解決策ではあり,また,まだ論文発表にはいったていないものの,構造に対する変更の反映を可能とするような高階双方向プログラミング言語の実現に成功しているため,「おおむね順調に進展している」と判断した.
|
Strategy for Future Research Activity |
高階双方向プログラミング言語を実現し,いくつかの例に関し言語の有効性の評価を行いはしたものの,まだ充分ではない.現在,様々な双方向変換を提案言語で記述することにより提案言語の有効性の確認を進めている途中である.今後はこの評価を進めてつつ必要に応じて言語の設計や実装を洗練していく.
また,既にいくつかの評価を通じて,様々な言語の拡張の有効性が明らかになった.一つの方向性は,ナローイングや外部の制約解消器の利用といった非決定的プログラミング技法の応用である.もう一つの方向性は,値域の推論やその構造を利用した効率的な逆計算など,逆計算手法を応用した言語の実行の効率化である.これらについても並行して研究を進めていく.
|
Research Products
(3 results)