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.
Keywords: Prolog Compilation - Abstract Interpretation - Multiple Specialization