• DocumentCode
    2074061
  • Title

    Efficient hybrid typestate analysis by determining continuation-equivalent states

  • Author

    Bodden, Eric

  • Author_Institution
    Dept. of Comput. Sci., Tech. Univ. Darmstadt, Darmstadt, Germany
  • Volume
    1
  • fYear
    2010
  • fDate
    2-8 May 2010
  • Firstpage
    5
  • Lastpage
    14
  • Abstract
    Typestate analysis determines whether a program violates a set of finite-state properties. Because the typestate-analysis problem is statically undecidable, researchers have proposed a hybrid approach that uses residual monitors to signal property violations at runtime. We present an efficient novel static typestate analysis that is flow-sensitive, partially context-sensitive, and that generates residual runtime monitors. To gain efficiency, our analysis uses precise, flow-sensitive information on an intra-procedural level only, and models the remainder of the program using a flow-insensitive pointer abstraction. Unlike previous flow-sensitive analyses, our analysis uses an additional backward analysis to partition states into equivalence classes. Code locations that transition between equivalent states are irrelevant and require no monitoring. As we show in this work, this notion of equivalent states is crucial to obtaining sound runtime monitors. We proved our analysis correct, implemented the analysis in the Clara framework for typestate analysis, and applied it to the DaCapo benchmark suite. In half of the cases, our analysis determined exactly the property-violating program points. In many other cases, the analysis reduced the number of instrumentation points by large amounts, yielding significant speed-ups during runtime monitoring.
  • Keywords
    data flow analysis; finite state machines; Clara framework; DaCapo benchmark suite; backward analysis; continuation-equivalent states; finite-state properties; flow-insensitive pointer abstraction; flow-sensitive information; hybrid typestate analysis; residual runtime monitors; Algorithm design and analysis; Automata; Instruments; Merging; Monitoring; Runtime; Weaving; runtime monitoring; static analysis; typestate analysis;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering, 2010 ACM/IEEE 32nd International Conference on
  • Conference_Location
    Cape Town
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-60558-719-6
  • Type

    conf

  • DOI
    10.1145/1806799.1806805
  • Filename
    6062068