Mercurial > hg > Papers > 2015 > atton-thesis
view future.tex @ 56:398b42a1ac19
Fix layouts
author | Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 16 Feb 2015 15:05:11 +0900 |
parents | 6ca594d19ca4 |
children | 5f0e13923cfd |
line wrap: on
line source
\chapter{まとめと今後の課題} 本研究ではプログラムの変更を Monad を用いて形式化した。 特にプログラミング言語 Haskell において Delta Monad として変更を保存するメタ計算を実装した。 変更を保存するメタ計算により、複数のバージョンを持つプログラムを表現でき、複数のバージョン同時に実行した。 加えて Delta Monad は他の Monad と組み合せることができることを示すために DeltaM を定義した。 DeltaM を用いたプログラムでは複数のバージョンを持つプログラムがそれぞれどのような過程で実行されたかのトレースを得ることができた。 トレースを比較することにより、デバッグやテストに有用な情報を提供することができる。 さらに Delta と DeltaM が Monad 則を満たすことを Agda において証明した。 今後の課題は大きく分けて2つが挙げられる。 まず1つめはメタ計算のさらなる定義である。 本研究ではプログラムの変更に対応するメタ計算として過去のプログラムを保存するメタ計算を提案した。 そのメタ計算は Delta Monad として実装し、さらにメタ計算を行なう場合は Monad との組み合せとした。 今回例として挙げた Monad は Writer のみであるが、他にも信頼性の向上に用いることができる Monad があると思われる。 例えば並列実行や、バージョン毎による IO の切り分け、バージョン間の互換性などがあると考えている。 次に、 category theory によるプログラムの変更に対する意味付けがある。 category theory は category の構造から性質を導いたり、他の category への関連を導くことができる。 プログラムの変更を Monad として表した時に持つ意味や、 category が持つ有益な性質をプログラムに適用したい。 特に、複数のプログラムを同時に実行するのは product に、全てのプログラムを生成できる Delta 全体を表す集合は colimit に関連があると考えている。