changeset 20:4307454b56bb

Add introduction
author atton <atton@cr.ie.u-ryukyu.ac.jp>
date Fri, 20 Jan 2017 16:37:04 +0900
parents 34de798b11c3
children a47122d914ea
files paper/atton-master.tex paper/introduction.tex paper/reference.bib
diffstat 3 files changed, 52 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/paper/atton-master.tex	Fri Jan 20 14:53:16 2017 +0900
+++ b/paper/atton-master.tex	Fri Jan 20 16:37:04 2017 +0900
@@ -97,7 +97,7 @@
 \mainmatter
 
 %chapters
-\chapter{Continuation based C とメタ計算としての検証手法}
+\input{introduction.tex}
 
 \input{cbc.tex}
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/introduction.tex	Fri Jan 20 16:37:04 2017 +0900
@@ -0,0 +1,18 @@
+\chapter{Continuation based C とメタ計算としての検証手法}
+ソフトウェアの規模が大きくなるにつれてバグは発生しやすくなる。
+バグとはソフトウェアが期待される動作以外の動作をすることである。
+ここで期待された動作は仕様と呼ばれ、自然言語や論理によって記述される。
+検証とは定められた環境下においてソフトウェアが仕様を満たすことを保証することである。
+
+ソフトウェアの検証手法にはモデル検査と定理証明がある。
+
+モデル検査とはソフトウェアの全ての状態を数え上げ、その状態について仕様が常に真となることを確認する。
+モデル検査器には Promela と呼ばれる言語でモデルを記述する Spin\cite{spin} や、モデルを状態遷移系で記述する NuSMV\cite{nusmv}、C言語/C++ を記号実行する CBMC\cite{cbmc} などが存在する。
+定理証明はソフトウェアが満たすべき仕様を論理式で記述し、その論理式が恒真であることを証明する。
+定理証明を行なうことができる言語には、依存型証明を行なう Agda\cite{agda} や Coq\cite{coq} 、 ATS2\cite{ats2} などが存在する。
+
+モデル検査器や証明でソフトウェアを検証する際、検証するコードと実装に使われるコードが異なる問題がある。
+検証されたコードから仕様を満たしたソースコードを生成できる機能を持つ検証系もあるが、既存の実装コードに対する検証が行なえない。
+...
+
+\section{本論文の構成}
--- a/paper/reference.bib	Fri Jan 20 14:53:16 2017 +0900
+++ b/paper/reference.bib	Fri Jan 20 16:37:04 2017 +0900
@@ -88,9 +88,41 @@
 @misc{agda,
     title = {The Agda wiki},
     howpublished = {\url{http://wiki.portal.chalmers.se/agda/pmwiki.php}},
-    note = {Accessed: 2015/02/17(Tue)}
+    note = {Accessed: 2016/01/20(Fri)}
+}
+
+@misc{coq,
+    title = {Welcome! | The Coq Proof Assistant},
+    howpublished = {\url{https://coq.inria.fr/}},
+    note = {Accessed: 2016/01/20(Fri)}
+}
+
+@misc{ats2,
+    title = {ATS-PL-SYS},
+    howpublished = {\url{http://www.ats-lang.org/}},
+    note = {Accessed: 2016/01/20(Fri)}
 }
 
+@misc{spin,
+    title = {Spin - Formal Verification},
+    howpublished = {\url{http://spinroot.com/spin/whatispin.html}},
+    note = {Accessed: 2016/01/20(Fri)}
+}
+
+@misc{nusmv,
+    title = {NuSMV home page},
+    howpublished = {\url{http://nusmv.fbk.eu/}},
+    note = {Accessed: 2016/01/20(Fri)}
+}
+
+@misc{cbmc,
+    title = {The CBMC Homepage},
+    howpublished = {\url{http://www.cprover.org/cbmc/}},
+    note = {Accessed: 2016/01/20(Fri)}
+}
+
+
+
 @techreport{weko_142109_1,
    author      = "小久保,翔平 and 伊波,立樹 and 河野,真治",
    title       = "Monadに基づくメタ計算を基本とするGears OSの設計",