Mercurial > hg > Papers > 2015 > atton-thesis
changeset 70:f44cabf175b3
Update preprint
author | Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 17 Feb 2015 15:33:22 +0900 |
parents | 0cf12b73bb02 |
children | ac56c2f84dfb |
files | prepaper/115763K.pdf prepaper/115763K.tex |
diffstat | 2 files changed, 12 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/prepaper/115763K.tex Tue Feb 17 14:50:32 2015 +0900 +++ b/prepaper/115763K.tex Tue Feb 17 15:33:22 2015 +0900 @@ -46,11 +46,11 @@ \thispagestyle{fancy} \begin{abstract} -Reliability of program reduced by many factors. +We propose improvement methods to Reliability of program by formalize modification of program. Generally, reliability changes due to modification. We formalize modification of program using Monad. -We define Delta Monad as meta computation that save behavior when modify program. -Delta help to improve reliability. +We define Delta Monad as meta computation that save program when modifies. +Delta Monad provides functions for improve reliability. For example, debug method that compare traces of different versions is available. Finally, We proved Delta Monad satisfies Monad-laws. \end{abstract} @@ -59,7 +59,7 @@ 信頼性とはプログラムが正しく動作する保証であり、バグといった原因により低下する。 信頼性が変化する点としてプログラムの変更に注目し、プログラムの変更を形式化する。 形式化には Monad を用い、メタ計算としてプログラムの変更を定義する。 -最後に、定義したメタ計算が Monad 則を満たすか証明する。 +最後に、定義したメタ計算が Monad 則を満たすことを証明する。 \section{メタ計算と Monad} プログラムを形式化するにあたり、プログラムを定義する。 @@ -69,7 +69,7 @@ \section{変更を表す Delta Monad} プログラムの変更を表すメタ計算として、変更時に過去のプログラムも保存する Delta Monad を提案する。 -Delta Monad では変更単位をバージョンとし、全てのバージョンを保存しつつ実行することができる。 +Delta Monad では変更単位をバージョンとし、全てのバージョンを保存する。 Delta Monad をプログラミング言語 Haskell において実装し、異なるバージョンのプログラムを同時に実行する。 まずは、Delta Monad と対応するデータ型 Delta を定義する(リスト\ref{src:delta_data})。 @@ -89,7 +89,7 @@ \end{table} プログラムはバージョンによって順序付けられているため、バージョン毎に関数を適用することでメタ計算を実現する。 -コンストラクタが Mono であるバージョン1の場合はバージョン1どうしの計算を行ない、バージョンが1より大きい Delta で構成される場合は、先頭のバージョンどうしを計算し、先頭を除いた形に変形してから再帰的にメタ計算を適用する。 +コンストラクタが Mono であるバージョン1の場合はバージョン1どうしの計算を行ない、バージョンが1より大きい Delta である場合は、再帰的にバージョンを下げながら計算を行なう。 \section{Delta Monad を用いたプログラムの例} Delta Monad を用いて、異なるバージョンのプログラムを同時に実行した例を示す。 @@ -155,14 +155,12 @@ 例えば、プログラムを同時に実行しながらトレースを比較することでデバッグを支援することができる。 他にも、全ての変更を保存する性質から、プログラムのバージョン管理システムに対して形式的な定義を与えられる。 -今後の課題は大きく分けて3つある。 -まず1つめはメタ計算の定義である。 -今回行なったメタ計算は変更時に前のプログラムを保存するものであった。 -他にもプログラムの変更時にトレースを確認してから変更を適用するなど、他のメタ計算が定義できると考えている。 -2つめは Delta におけるプログラムの変更範囲の定義である。 -Delta において表現可能なプログラムの変更の範囲は全ての変更を含んでいるか、もしくはどの変更が行なわれるかを定義または証明する。 -最後に Monad を通した圏における解釈がある。 -特に、バージョンの組み合せは product に、全てのバージョンを保存している Delta は colimit に対応すると考えている。 +今後の課題は大きく分けて2つある。 +1つめは Delta Monad におけるプログラムの変更範囲の定義である。 +Delta Monad において表現可能な変更の範囲が全ての変更を含むか証明する。 +もしくは、Delta Monad により表現できる変更の範囲を定義する。 +次に Monad を通した圏における解釈がある。 +バージョンの組み合せは product に、全てのバージョンを保存している Delta は colimit に対応すると考えている。 \nocite{Girard:1989:PT:64805, opac-b1092711, BarrM:cattcs, JonesDuponcheel93}