  The relationship between abstract interpretation and partial deduction has
received considerable attention and (partial) integrations have been proposed
starting from both the partial deduction and abstract interpretation
perspectives. In this work we present what we argue is the first fully
described generic algorithm for efficient and precise integration of abstract
interpretation and partial deduction. Taking as starting point state-of-the-art
algorithms for context-sensitive, polyvariant abstract interpretation and
(abstract) partial deduction, we present an algorithm which combines the best
of both worlds. Key ingredients include the accurate success propagation
inherent to abstract interpretation and the powerful program transformations
achievable by partial deduction. In our algorithm, the calls which appear in
the analysis graph are not analyzed w.r.t. the original definition of the
procedure but w.r.t. specialized definitions of these procedures. Such
specialized definitions are obtained by applying both unfolding and abstract
executability. Our framework is parametric w.r.t. different control strategies
and abstract domains. Different combinations of such parameters correspond to
existing algorithms for program analysis and specialization. Simultaneously,
our approach opens the door to the efficient computation of strictly more
precise results than those achievable by each of the individual techniques. The
algorithm is now one of the key components of the CiaoPP analysis and
specialization system.
