annotate tex/intro.tex @ 8:27a6616b6683

fix
author soto@cr.ie.u-ryukyu.ac.jp
date Mon, 14 Sep 2020 19:58:10 +0900
parents b124f02ea3f1
children a8bc8c6b48bd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
b124f02ea3f1 post agda code
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
1 \section{研究目的}
8
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
2 OS やアプリケーションの信頼性を高めることは重要な課題である。
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
3 信頼性を高める為には仕様を満たしたプログラムが実装されていることを検証する必要がある。
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
4 具体的には「モデル検査」や「定理証明」などが検証手法として挙げられる。
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
5 研究室で CbC という言語を開発している。
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
6 CbC とは、C言語からループ制御構造とサブルーチンコールを取り除き、継続を導入した C言語の下位言語である。
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
7 この言語の信用性を検証したい。
3
b124f02ea3f1 post agda code
soto@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
8
8
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
9 仕様に合った実装を実施していることの検証手法として Hoare Logic が知られている。
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
10 Hoare Logic は事前条件が成り立っているときにある計算(以下コマンド)を実行した後に、
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
11 に事後条件が成り立つことでコマンドの検証を行う。
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
12 この定義が CbC の実行を継続するという性質と相性が良い。
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
13
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
14 CbCでは実行を継続するため、ある関数の実行結果は事後条件になるが、その実行結果が遷移する次の関数の事前条件になる。
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
15 それを繋げていくので、個々の関数の
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
16 正当性を証明することと接続の健全性について証明するだけでプログラム全体の検証を行うことができる。
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
17
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
18 % これらのことから、本稿では Hoare Logic を用いて CbC を検証することを目指す。
soto@cr.ie.u-ryukyu.ac.jp
parents: 3
diff changeset
19 これらのことから、本稿では CbC に対応するようにagdaで記述し、Hoare Logic により検証を行うことを目指す。