changeset 51:801be6f676bc

Add Future work
author Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
date Sun, 15 Feb 2015 21:46:38 +0900
parents 37a832dff044
children 6ca594d19ca4
files future.tex
diffstat 1 files changed, 18 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/future.tex	Sun Feb 15 17:56:51 2015 +0900
+++ b/future.tex	Sun Feb 15 21:46:38 2015 +0900
@@ -1,1 +1,19 @@
 \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 に関連があるように考えている。