|
CMU-CS-99-135
Computer Science Department
School of Computer Science, Carnegie Mellon University
CMU-CS-99-135
The Design of Program Analysis Services
Robert O'Callahan
June 1999
CMU-CS-99-135.ps
CMU-CS-99-135.pdf
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
|