• DocumentCode
    841101
  • Title

    Modular Pluggable Analyses for Data Structure Consistency

  • Author

    Kuncak, Viktor ; Lam, Patrick ; Zee, Karen ; Rinard, Martin C.

  • Author_Institution
    MIT Comput. Sci. & Artificial Intelligence Lab., Cambridge, MA
  • Volume
    32
  • Issue
    12
  • fYear
    2006
  • Firstpage
    988
  • Lastpage
    1005
  • Abstract
    Hob is a program analysis system that enables the focused application of multiple analyses to different modules in the same program. In our approach, each module encapsulates one or more data structures and uses membership in abstract sets to characterize how objects participate in data structures. Each analysis verifies that the implementation of the module 1) preserves important internal data structure consistency properties and 2) correctly implements a set algebra interface that characterizes the effects of operations on the data structure. Collectively, the analyses use the set algebra to 1) characterize how objects participate in multiple data structures and to 2) enable the interanalysis communication required to verify properties that depend on multiple modules analyzed by different analyses. We implemented our system and deployed several pluggable analyses, including a flag analysis plug-in for modules in which abstract set membership is determined by a flag field in each object, a PALE shape analysis plug-in, and a theorem proving plug-in for analyzing arbitrarily complicated data structures. Our experience shows that our system can effectively 1) verify the consistency of data structures encapsulated within a single module and 2) combine analysis results from different analysis plug-ins to verify properties involving objects shared by multiple modules analyzed by different analyses
  • Keywords
    data structures; formal specification; program diagnostics; program verification; Hob analysis approach; PALE shape analysis plug-in; abstract set membership; data structure consistency; flag analysis plug-in; modular pluggable analyses; program analysis system; program verification; set algebra interface; theorem proving plug-in; Algebra; Algorithm design and analysis; Computer crashes; Computer languages; Data analysis; Data structures; Design methodology; Failure analysis; Scalability; Shape; Typestate; data structure; formal methods; invariant; program analysis; program verification; programming language design.; shape analysis;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2006.125
  • Filename
    4016574