Verification of programs using Code Segments and Data Segments
Yasutaka Higa
研究目的
コードセグメントとデータセグメントという単位を用いてプログラムを記述する手法を提案する
プログラムはコードセグメントという処理の集合として表され、相互に接続される
個々のコードセグメントを検証し、検証されたコードセグメントどうしの組み合わせによりプログラム全体を検証する
研究内容
コードセグメントとデータセグメントを用いたプログラムに対し、自動で検証する機構を提案する
検証機構には可能な状態を列挙できるモデルチェッカーや、型システムを用いた証明を用いる
検証をメタ計算として定義し、通常のプログラムから検証を含んだプログラムを導出する
メタ計算の形式化には Monad を用い、通常の計算とメタ計算間の一対一対応を保証する
近況報告
llvm-cov 動きませんでした
llvm-cov 動きませんでした
clang に –coverage オプションを付けると .gcno ができる
.gcno を使って coverage を表示する
らしい
clang の 3.8 (99:21681fa9647e) と tip (109:6916f1d3a436) で試したところ動かず
–coverage オプションを使うと cbc はコンパイルできない (Gears/llrb, CbC_examples)
具体的には TCE できない旨のエラーが出る
error: code3 : Tail call elimination was failed on goto meta !