Speaker: Aharon Abadi
Title: An Investigation of the Plan Calculus as a Complete Intermediate
Program Representation
Abstract
Modern compilers and development tools need to perform deep program analysis and
transformations. The classical program representation for analysis and
transformations is the control-flow graph (CFG). CFG-based analysis suffers
from problems that come from the fact the CFG is a low-level representation and
close to the code. Many program representations have been proposed in order to
overcome CFG problems. These include static single assignment (SSA), the
program dependence graph (PDG), after investigating these representations on
variety of analysis algorithms I will demonstrate that these
representations suffer from some problems as well and none gives a
complete representation to develop both inter- and intra-procedural static
analysis and transformations framework.
In this talk I want to
introduce the plan calculus representation and as a complete
representation for an inter- and intra-procedural static analysis and
transformations. The plan calculus directly expresses program semantics in
terms of data flow and control flow and is therefore particularly convenient
for machine manipulation. The plan calculus abstracts away from the particular
syntax of the programming language, and expresses data flow and control flow
directly. In particular, control transfers and assignments are
represented by the appropriate type of edges rather than by nodes. I will
demonstrate how the plan framework solved the classical representations
problems and may be the next generation framework of modern static analysis and
transformations tools.