Computer Science Department
School of Computer Science, Carnegie Mellon University


The Design of Program Analysis Services

Robert O'Callahan

June 1999

Keywords: Java, bytecode, Ajax, value-point relation, tools, interface

The difficulty of understanding large programs is a major contribution to the cost of program maintenance and transformation. Tools for static program analysis promise to address this problem by automatically discovering truths about a program from its source text. It is often desirable to have a suite of specialized tools that each address a different task; however, static analyses are difficult and expensive to build, and therefore should be reused across tools wherever possible. Therefore we desire a general interface between analyses that produce information and tools that consume it. It should be easy and cheap to build tools on top of such an interface, with no need to understand the analysis implementation; however, the interface must permit scalability and precision comparable to a monolithic design. It turns out to be desirable, and feasible, for the same interface to cover a wide range of analysis implementations. In this paper we discuss the design and implementation of such an interface in Ajax, a framework and set of tools for the static analysis of Java programs.

14 pages

Return to: SCS Technical Report Collection
School of Computer Science homepage

This page maintained by