Photo
GNOSIS

Interprocedural analysis has important applications in areas such as program optimization, program understanding, automated refactoring, and change impact analysis. For many of these applications, the added precision of context-sensitive analysis is desired, but most existing implementations of context-sensitive analysis are algorithmically expensive, which limits their scalability. The Gnosis project seeks to overcome this limitation by investigating staged analyses. In the approaches we envision, efficient, low-cost analyses are augmented with the use of more expensive and precise algorithms where warranted (i.e., in places where some benefit can be expected), resulting in analysis techniques that can be applied to large-scale systems with acceptable precision. We are also interested in demand-driven interprocedural analysis and incremental interprocedural analysis, which we believe can be especially worthwhile in interactive settings such as program understanding tools and refactoring tools.

The Gnosis project builds on earlier program analysis work at done IBM Research. This includes the Jax project, in which interprocedural analysis was used to eliminate unused functionality from Java applications with the objective of reducing distribution size and thereby download time. The Gnosis project also borrows infrastructure from the JikesRVM project, in particular, its high-level intermediate representation and an framework for advanced interprocedural analyses such as k-CFA.

 

Links
http://www.alphaworks.ibm.com/tech/jax