| | |
Summary: Making SetConstraint Program Analyses Scale
Manuel F¨ahndrich \Lambda Alexander Aiken \Lambda
EECS Department
University of California, Berkeley
Berkeley, CA 947201776
fmanuel,aikeng@cs.berkeley.edu
July 2, 1996
1 Introduction
Constraintbased program analyses are appealing because elaborate analyses can be described with a concise
and simple set of constraint generation rules. Constraint resolution algorithms have been developed for
many kinds of constraints, conceptually allowing an implementation of a constraintbased program analysis
to reuse large pieces of existing code. In practice, however, new analyses often involve reimplementing
new, complex constraint solving frameworks, tuned for the particular analysis in question. This approach
wastes development time and interferes with the desire to experiment quickly with a number of different
analyses.
We believe that implementing an analysis should require writing only the code to generate the con
straints, and that a well engineeredlibrary can take care of constraint representation, resolution, and
transformation. Writing such a library capable of handling small programs is not too difficult, but scaling
to large programs is hard. Toward this goal, we are developing a scalable, expressive framework for solving
a class of set constraints. Scalability is achieved through four techniques: polymorphism, simplification,
|