|
Technical Report: DCC-2001-7
WAM Local Analysis
Michel Ferreira and Luís Damas
DCC-FC & LIACC, Universidade do Porto
R. do Campo Alegre 823, 4150-180 Porto, Portugal
Phone: 351 22 6078830, Fax: 351 22 6003654
E-mail: {michel,luis}@ncc.up.pt
September 2001
Abstract
The abstract interpretation framework has been used mainly in the
global analysis of programs. Most often also, this
interpretation is applied to the source Prolog program. In this paper
we present an abstract interpretation of more local nature, and
applied to the intermediate code (WAM). The purpose of obtaining a
more efficient specialized version of the program remains the same as
in global analysis approaches. Our specialization is multiple, meaning
that we generate a different version for each entry pattern detected by
analysis. This poly-variant unfolding of predicates allows the local
(predicate level) analysis to propagate inter-procedurally relevant
information. Besides time and complexity reduction of local versus
global analysis, our approach is suited for goal-independent
specialization, and for the partial selection of predicates to
specialize. The evaluation of this more general specialization of
programs in a full compiler shows that it is an alternative to global
and goal-dependent methods.
|