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
Link To Document