Patrick Lam, Viktor Kuncak, and Martin Rinard.
Generalized typestate checking for data structure consistency.
In Verification, Model Checking and Abstract Interpretation,
volume 3385 of LNCS, 2005.
We present an analysis to verify abstract set specifications for
programs that use object field values to determine the membership of
objects in abstract sets. In our approach, each module may
encapsulate several data structures and use membership in abstract
sets to characterize how objects participate in its data structures.
Each module's specification uses set algebra formulas to characterize
the effects of its operations on the abstract sets. The program may
define abstract set membership in a variety of ways; arbitrary
analyses (potentially with multiple analyses applied to different
modules in the same program) may verify the corresponding set
specifications. The analysis we present in this paper verifies set
specifications by constructing and verifying set algebra formulas
whose validity implies the validity of the set specifications.
We have implemented our analysis and annotated several programs
(75-2500 lines of code) with set specifications. We found that our
original analysis algorithm did not scale; this paper describes
several optimizations that improve the scalability of our analysis.
It also presents experimental data comparing the original and
optimized versions of our analysis.
[ bib ]
Back