Abstract
We present a framework for leveraging dynamic analysis to find good abstractions for static analysis. A static analysis in our framework is parametrised. Our main insight is to directly and efficiently compute from a concrete trace, a necessary condition on the parameter configurations to prove a given query, and thereby prune the space of parameter configurations that the static analysis must consider. We provide constructive algorithms for two instance analyses in our framework: a flow- and context-sensitive thread-escape analysis and a flow- and context-insensitive points-to analysis. We show the efficacy of these analyses, and our approach, on six Java programs comprising two million bytecodes: the thread-escape analysis resolves 80% of queries on average, disproving 28% and proving 52%; the points-to analysis resolves 99% of queries on average, disproving 29% and proving 70%.
Original language | English |
---|---|
Pages (from-to) | 373-385 |
Number of pages | 13 |
Journal | ACM SIGPLAN Notices |
Volume | 47 |
Issue number | 1 |
DOIs | |
State | Published - Jan 2012 |
Keywords
- Necessary-condition problem
- Parametrised static analysis
- Points-to analysis
- Testing
- Thread-escape analysis
All Science Journal Classification (ASJC) codes
- General Computer Science