Date Added: Aug 2009
The size of today's programs continues to grow, as does the number of bugs they contain. Testing alone is rarely able to flush out all bugs, and many lurk in difficult-to-test corner cases. An important alternative is static analysis, in which correctness properties of a program are checked without running it. While it cannot catch all errors, static analysis can catch many subtle problems that testing would miss. The authors propose a new space of abstractions for pointer analysis-an important component of static analysis for C and similar languages. They identify two main components of any abstraction-how to model statement order and how to model conditionals, then present a new model of programs that enables one to explore different abstractions in this space.