     

Producing high quality code means that compilers
have to perform efficiency-enhancing program transformations. These
transformations usually depend on preceding program analyses known
as data flow analyses or abstract interpretations. They may range
from "simple" intraprocedural bit vector frameworks to highly
complex interprocedural alias analyses. Their implementation is usually
difficult and expensive.
The program analyzer generator PAG supports the
implementation of static program analyzers. PAG automatically generates
efficient data flow analyzers from concise specifications. The generative
approach frees the PAG user from having to implement the domain functionality,
the traversal of the control flow graph, and suitable fixpoint algorithms.
Thus, saving valuable development time.
The underlying theory of abstract interpretation provides
the relation to the programming language semantics, thus enabling the
systematic derivation of provably correct and terminating analyses.
PAG/WWW, the free Web-based version of PAG, is an easy-to-use
system for experimenting with classical data flow analyses. Some analyses
are already predefined and there is a variety of example programs, but
PAG/WWW also allows specifying custom programs and analyses.
|