# HG changeset patch # User Yasutaka Higa # Date 1418109793 -32400 # Node ID b34ce7d49a0c0ada90b0e0b6b5ee14de82b24322 # Parent f0724df5ddbce92256d53291bf2f38cc7acb86e3 Mini fixes from OC-san diff -r f0724df5ddbc -r b34ce7d49a0c figure/versions.graffle --- a/figure/versions.graffle Tue Dec 09 15:18:26 2014 +0900 +++ b/figure/versions.graffle Tue Dec 09 16:23:13 2014 +0900 @@ -53,7 +53,7 @@ Bounds - {{57, 67}, {320, 239}} + {{57, 67}, {320, 276}} Class ShapedGraphic ID @@ -111,13 +111,16 @@ function = [f, g, h]\ \ variable >>= function =\ + -- all combinations\ [[f(x), g(x), h(x)],\ [f(y), g(y), h(y)]]\ =\ + -- select by rules\ [f(x), g(y), h(y)]\ \ \ \ +\ } VerticalPad 0 @@ -173,7 +176,7 @@ MasterSheets ModificationDate - 2014-12-09 06:03:18 +0000 + 2014-12-09 07:21:57 +0000 Modifier atton NotesVisible diff -r f0724df5ddbc -r b34ce7d49a0c figure/versions.pdf Binary file figure/versions.pdf has changed diff -r f0724df5ddbc -r b34ce7d49a0c figure/versions.xbb --- a/figure/versions.xbb Tue Dec 09 15:18:26 2014 +0900 +++ b/figure/versions.xbb Tue Dec 09 16:23:13 2014 +0900 @@ -1,8 +1,8 @@ -%%Title: ./versions.pdf +%%Title: ./figure/versions.pdf %%Creator: extractbb 20130405 -%%BoundingBox: 0 0 328 297 -%%HiResBoundingBox: 0.000000 0.000000 328.000000 297.000000 +%%BoundingBox: 0 0 344 389 +%%HiResBoundingBox: 0.000000 0.000000 344.000000 389.000000 %%PDFVersion: 1.3 %%Pages: 1 -%%CreationDate: Tue Dec 9 15:02:17 2014 +%%CreationDate: Tue Dec 9 16:22:22 2014 diff -r f0724df5ddbc -r b34ce7d49a0c sigse.tex --- a/sigse.tex Tue Dec 09 15:18:26 2014 +0900 +++ b/sigse.tex Tue Dec 09 16:23:13 2014 +0900 @@ -71,7 +71,7 @@ プログラムの変更時に信頼性が変化すると仮定し,圏を用いてプログラムの変更を形式化する. 本研究ではプログラムの変更を Monad として表現する. -Monad とはメタ計算と対応付けられたデータ構造である. +Monad とはデータ構造とメタ計算を対応させる手法である. Monad として任意の異なるバージョンのプログラムを同時に実行するデータ構造 Delta を定義した. プログラムの変更は特定バージョンの Delta から次のバージョンの Delta への変換として記述する. @@ -90,7 +90,7 @@ バージョンの組み合せの例を図\ref{fig:versions}に示す. 変数 variable と関数 function が存在するとする. variable はバージョンが2つ存在し,関数はバージョンが3つ存在する. -これらの組み合せの中から,variableのバージョン2つを保存しつつ関数のバージョン3を含んだ組み合せを選ぶ. +これらの組み合せの中から,variableのバージョン2つを保存しつつ関数のバージョン3も含むように組み合せから値を選ぶ. \begin{figure}[htpb] \begin{center} @@ -101,9 +101,9 @@ \end{figure} バージョンの組み合せを一意に定義するために Delta を Monad とする. -Monad とはデータ構造とメタ計算を対応付ける手法である\cite{moggi}. -ここでのメタ計算とはバージョン間の組み合せを一意に決めるルールである. -関数の実行時にメタ計算も含めて実行することにより,異なるバージョンに存在するの独立した計算も全て実行することができる. +Monad によってデータ構造とメタ計算を対応付けることができる\cite{moggi}. +Delta におけるメタ計算とはバージョン間の組み合せを一意に決めるルールである. +関数の実行時にメタ計算も含めて実行することにより,異なるバージョンに存在する独立した計算も全て実行することができる. なお,データ構造を Monad として定義する際に満たすべき Monad則が存在するが,Monad則を満たしていることは証明支援系言語Agda\cite{agda}によって証明した. プログラムをデータ構造 Delta と Delta を返す関数として記述することにより,全てのバージョンを同時に実行できるプログラムが得られる. @@ -158,6 +158,6 @@ \end{thebibliography} -%}{ +%} \end{document}