研究課題
双方向変換は,通常の順方向の変換と,変換後のデータに対する更新を元データへと書き戻す逆方向の変換の二つからなる.双方向変換は,ビュー更新や異なる形式のデータの同期等に応用を持つ.双方向変換には通常の意味での高階双方向変換が存在しないことが知られており,これまで高階双方向変換プログラミング言語は知られていない.本研究の目的は,通常の高階関数を用いて双方向変換を組み合わせることが可能になるようなプログラミング言語の設計・実装である.本年度は,国際会議European Symposium on Programming (ESOP)にて,高階双方向プログラミング言語HOBiTについて発表を行った.この言語ではユーザは高階関数を用いて双方向変換を組み合わせることによりより大きな双方向変換を現実的なコストで記述することが可能である.この言語の設計は,研究代表者らの過去の成果の一つApplicative Lensフレームワーク (ICFP 2015で発表)を元にしているが,これについてはジャーナル版がJournal of Functional Programmingに本年度採録された.また,国際会議Haskell Symposiumでおいて,研究代表者らの過去の成果であるFliPprシステム(ESOP 2013で発表)の埋め込み実装を示した.これまで,可逆/双方向プログラミング言語の高階抽象構文を用いた埋め込みはあまり知られていなかったが,本研究は一つのケーススタディを示した.また,前述のFliPprシステムについては,ジャーナル版がNew Generation Computingに本年度採録された.また,学生との共同研究の成果がプログラミングおよびプログラミング言語ワークショップにて発表された.この成果は,双方向変換と関連が深い,量子プログラミング言語の埋め込み実装に関するものである.
すべて 2018 その他
すべて 国際共同研究 (1件) 雑誌論文 (4件) (うち国際共著 4件、 査読あり 4件、 オープンアクセス 1件) 学会発表 (3件) 備考 (5件)
Journal of Functional Programming
巻: 28 ページ: 1~49
10.1017/S0956796818000096
New Generation Computing
巻: 36 ページ: 173~202
10.1007/s00354-018-0033-7
Programming Languages and Systems - 27th European Symposium on Programming, ESOP 2018,
巻: なし ページ: 31~59
10.1007/978-3-319-89884-1_2
Proceedings of the 11th ACM SIGPLAN International Symposium on Haskell
巻: なし ページ: 158~171
10.1145/3242744.3242758
http://www2.sf.ecei.tohoku.ac.jp/~kztk/
https://bitbucket.org/kztk/hibx
https://bitbucket.org/kztk/flippr
https://bitbucket.org/kztk/flippre
https://bitbucket.org/kztk/app-lens