Khái niệm cốt lõi
本稿では、オブジェクト指向プログラムにおけるオブジェクト不変条件、特にフィールド間の関係を表すリレーショナルな不変条件を抽象解釈を用いて自動的に推論する新しい手法を提案する。
本稿では、オブジェクト指向プログラムにおけるオブジェクト不変条件、特にフィールド間の関係を表すリレーショナルな不変条件を抽象解釈を用いて自動的に推論する新しい手法を提案する。オブジェクト不変条件は、オブジェクトのフィールド間で常に成り立つ関係性を表し、プログラムのメモリ安全性や機能の正当性を証明する上で重要となる。しかし、従来の抽象解釈では、フィールドの更新時にどのオブジェクトが影響を受けるか正確に把握できないため、不変条件の精度が低下する問題があった。
本稿では、メモリを複数のメモリバンクに分割し、各バンクに最近使用されたオブジェクト(MRUオブジェクト)を格納するキャッシュと、その他のオブジェクトを格納するストレージを持つ新しいメモリモデル(RUMM)を提案する。このモデルに基づき、MRUオブジェクトのフィールド更新を個別に追跡することで、他のオブジェクトの不変条件に影響を与えることなく、より正確な解析結果を得ることができる。
具体的には、以下の3つの要素からなる手法を提案する。
RUMM: メモリを複数のメモリバンクに分割し、各バンクにMRUオブジェクトを格納するキャッシュと、その他のオブジェクトを格納するストレージを持つ新しいメモリモデル。
MRUD: RUMMに基づいてオブジェクト不変条件を自動的に推論する新しい抽象ドメイン。MRUDは、スカラー変数、ポインタ、オブジェクトの状態を別々のドメインで表現し、それらを組み合わせて全体の状態を表現する複合抽象ドメインである。
ドメイン縮約: メモリバンクのキャッシュとスカラー変数の間で数値情報を伝播させることで、抽象状態の精度を向上させる手法。