list | abstracts | bib ]

Generalized Typestate Checking for Data Structure Consistency

paper pdf    paper ps   

Abstract

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.

Citation

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.

BibTex Entry

@INPROCEEDINGS{LamETAL05GeneralizedTypestateCheckingDataStructureConsistency,
  author = {Patrick Lam and Viktor Kuncak and Martin Rinard},
  title = {Generalized Typestate Checking for Data Structure Consistency},
  booktitle = {Verification, Model Checking and Abstract Interpretation},
  series = {LNCS},
  volume = {3385},
  year = 2005,
  localurl = {http://lara.epfl.ch/~kuncak/papers/LamETAL05GeneralizedTypestateCheckingDataStructureConsistency.pdf}
}

list | abstracts | bib ]