抽象解釈
抽象解釈(ちゅうしょうかいしゃく、英: Abstract interpretation)は、コンピュータプログラムの意味論の健全な近似の理論であり、順序集合(特に束)における単調関数に基づいている。全ての計算を実施することなく、プログラムの部分的な実行(ある種の部分評価)をするものと見ることができ、それによりプログラムの意味に関する情報(例えば、制御構造、情報の流れなど)を獲得する。
主な応用として、形式的な静的コード解析があり、プログラム実行に関する情報を自動抽出するものである。このような解析には次の2つの利用法がある。
コンパイラ内部で、対象プログラムを解析し、特定の最適化やプログラムの変換が可能かどうかを決定する。
デバッグ時や、特定の種類のバグが存在しないことを保証するとき。
抽象解釈は、Patrick Cousot と Radhia Cousot によって定式化された。
ASTRÉE
PolySpace Embedded Software Verification
PAG と PAG/WWW
Airac
Goanna