comparison bachelor_middle_draft.tex @ 3:331d9984930f

Fixes from hiyoko-san check
author Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
date Wed, 29 Oct 2014 12:30:55 +0900
parents 514bb884084c
children 0805d4984b1f
comparison
equal deleted inserted replaced
2:514bb884084c 3:331d9984930f
31 31
32 \section{プログラムの変更を表すMonad} 32 \section{プログラムの変更を表すMonad}
33 プログラムを変更するとプログラムの実行結果も変化する。 33 プログラムを変更するとプログラムの実行結果も変化する。
34 しかし、変更後のプログラムが正しい実行結果でない場合も存在する。 34 しかし、変更後のプログラムが正しい実行結果でない場合も存在する。
35 そこで、プログラムに対する変更をMonadとして記述する。 35 そこで、プログラムに対する変更をMonadとして記述する。
36 Monadとして記述した変更により、プログラムの変更時にこのプログラムの変更が正しく完成に近づくような変更なのか評価する。 36 Monadとして変更を記述することで、プログラムの変更時にこのプログラムの変更が正しく完成に近づくような変更なのか評価する。
37 ひいては、プログラムを変更することの意味や性質などを解析する。 37 ひいては、プログラムを変更することの意味や性質などを解析する。
38 38
39 % }}} 39 % }}}
40 40
41 % {{{ 限定されたプログラムの変更を表す Delta Monad 41 % {{{ 限定されたプログラムの変更を表す Delta Monad
42 42
43 \section{限定されたプログラムの変更を表す Delta Monad} 43 \section{限定されたプログラムの変更を表す Delta Monad}
44 Monad を用いてプログラムの変更の例として、プログラミング言語HaskellにおけるMonadを利用する。 44 Monad を用いたプログラムの変更の例として、プログラミング言語HaskellにおけるMonadを利用する。
45 Haskell におけるMonadとはメタ計算と対応されたデータ型である。 45 Haskell におけるMonadとはメタ計算と対応されたデータ型である。
46 Monadは任意の型を内包することができるデータ型である。 46 Monadであるデータ型は任意の型を内包することができ、内包した型に対する計算を行なった際にメタ計算も同時に行なう。
47 内包した型に対する演算を行なった際、Monadに対して定義されたメタ計算も行なう。
48 47
49 Haskell において限定されたプログラムの変更を表すことができる Delta Monad を定義した。 48 Haskell において限定されたプログラムの変更を表すことができる Delta Monad を定義した。
50 Delta Monad におけるプログラムの変更は、変更前と変更後の実行結果を両方持つことによって表現する。 49 Delta Monad におけるプログラムの変更は、変更前と変更後の実行結果を両方持つことによって表現する。
51 また、実行結果に対する変更履歴を持ち、2つ変更履歴の比較によってプログラムがどのように変更したか判断する。 50 また、実行結果に対する変更履歴を持ち、2つ変更履歴の比較によってプログラムがどのように変更したか判断する。
52 51