Verification of programs using Continuation based C
Yasutaka Higa
研究目的
コードセグメントとデータセグメントという単位を用いてプログラムを記述する手法を提案する
プログラムはコードセグメントという処理の集合として表され、相互に接続される
個々のコードセグメントを検証し、検証されたコードセグメントどうしの組み合わせによりプログラム全体を検証する
研究内容
コードセグメントとデータセグメントを用いたプログラムに対し、検証を行なう
コードセグメントどうしの接続の間にメタ計算として検証機構を導入する
コードを検証用に変更することなく、仕様を満たすか検証する
検証の対象として Gears OS のデータ構造を用いる
近況報告
cbmc で llrb を検証する
nondet_int() があったのでいけそうです
cbmc で llrb の検証
cbmc は c のコードの symbolic execution なので C syntax にしないといけない
なのでcbc -> c に変換
具体的には code と goto の置換
clang でコンパイル可能な状態まで書けました(syntax valid + executable)
あとは assert を書いて cbmc でチェックしてやる
あとやること
cbmc のコードに assert を埋め込んで検証
仮に書いている C function を全部 cs に変換する
JavaPathFinder + AVL-Tree in Java
synchronized queue の akasha での検証
bounded/unbounded
論文提出締切: 2016/07/08