Report Number: CSL-TR-90-441
Institution: Stanford University, Computer Systems Laboratory
Title: Computing Types During Program Specialization
Author: Weise, Daniel
Author: Ruf, Erik
Date: October 1990
Abstract: We have developed techniques for obtaining and using type
information during program specialization (partial
evaluation). Computed along with every residual expression
and every specialized program is type information that bounds
the possible values that the specialized program will compute
at run time. The three keystones of this research are
symbolic values that represent both a value and the code for
creating the value, generalization of symbolic values, and
the use of online fixed-point iterations for computing the
type of values returned by specialized recursive functions.
The specializer exploits type information to increase the
efficiency of specialized functions. This research has two
benefits, one anticipated and one unanticipated. The
anticipated benefit is that programs that are to be
specialized can now be written in a more natural style
without losing accuracy during specialization. The
unanticipated benefit is the creation of what we term
concrete abstract interpretation. This is a method of
performing abstract interpretation with concrete values where
possible. The specializer abstracts values as needed, instead
of requiring that all values be abstracted prior to abstract
interpretation.
http://i.stanford.edu/pub/cstr/reports/csl/tr/90/441/CSL-TR-90-441.pdf