home · mobile · calendar · colloquia · 2006-2007 · 

Colloquium - Sridharan

Refinement-Based Pointer Analysis: Techniques and Applications
University of California, Berkeley

Recent advances in program analysis tools have begun to change how software is designed, written, and verified. For example, there are now tools that can prove the absence of certain types of bugs in realistic programs, and tools to automate refactorings for code cleanup. A key obstacle to creating more powerful tools is precise reasoning about pointers, pervasive in modern object-oriented software. There has been a great deal of work on developing a pointer analysis that is both scalable and precise, but the best existing techniques still cannot meet the needs of many tools.

We present a novel points-to analysis for Java-like languages. Points-to analysis provides detailed information about pointer behavior and is quite scalable in less precise configurations. Most work on scaling a more precise points-to analysis has focused on better constraint solvers and space-efficient data structures. In contrast, we approached the problem by first re-formulating points-to analysis as a graph reachability problem, yielding new insights into the problem's structure. Based on this formulation, we developed a refinement-based analysis technique that analyzes important code with full precision while often entirely skipping unimportant code. Our algorithm is relatively simple to implement and yields both much greater scalability (with orders-of-magnitude space savings) and more precision than existing approaches. I will be presenting both our refinement-based pointer analysis and some future work on a novel development tool based on similar techniques.

Hosted by Amer Diwan.

Department of Computer Science
University of Colorado Boulder
Boulder, CO 80309-0430 USA
May 5, 2012 (14:13)