Core Concepts
プログラム解析における新しい理論「Outcome Separation Logic (OSL)」の紹介と、正確性と不正確性の両方を扱うプログラムロジックに対する新しいアプローチ。
Abstract
分離論の組成性と局所推論特性が静的解析の進歩に貢献してきたが、計算効果を持つプログラムや不正確性も扱う必要がある。
OSLはフレームルールを持ち、既存のロジックでは処理できない多くのプロパティに対応可能。
OSLは局所推論をサポートし、バグ検出と検証ツールの再利用性向上を実現。
記事は理論から始まり、シンボリック実行アルゴリズムやtri-abduction手法など具体的な手法へ展開される。
プログラムセマンティクス
コマンドやアクションなどの操作に対する意味論が提供されており、Outcome Algebraに基づいて重み付け関数が定義されている。
アウトカムアルゴリズムは選択肢や重み付け方法を表現し、異なる評価モデルに対応可能。
エラーモナドトランスフォーマーはエラー状態や未定義状態を表現し、コマンドやアクションの意味論に影響を与える。
シンタックス・セマンティクス
プログラム言語の文法や意味論が提供されており、各操作や条件分岐などがOutcome Algebraに基づいて解釈されている。
Stats
OSLはフレームルールを持ち、局所推論で正確性と不正確性をサポートする。
正常終了またはエラー状態など異なる結果への重み付け方法が示されている。