Abstract
Visualization of a program typically entails low level views of the program execution state showing, for example, method invocations or relations amongst heap objects. In most cases, this would imply visualization of the executable program. However there is a certain genre of programs that analyze or transform other programs. These programs could be compilers, static bug detectors, test suite analyzers, model to model transformers etc. In such cases, very often, it helps to visualize what is happening to the input program rather than the analyzer program. It is for such programs that we describe a configurable, analysis framework. For ease of exposition, we call the analyzer program the "manipulate" program, and the input program the "puppet" program. Using out visualization scheme, we are able to (1) gain insight into the manipulate program; (2) collect useful information/statistics about the puppet program. We have implemented the visualizer in a tool called "INSIGHT". We ran INSIGHT on a static debugging tool (the manipulate program) called XYLEM. XYLEM applies static analysis to find potential null pointer exceptions in a puppet program, as for example, the Apache Ant program. We report the insights gained by running XYLEM through INSIGHT on ANT and other puppet programs. Further, to visualize the concept of a visualizing a puppet program by a manipulate program, we present the "the puppet and the probe".