Implementation of multiple specialization in logic programs
Germán Puebla, Manuel V. Hermenegildo · 1995
We study the multiple specialization of logic programs based on abstract interpretation.This involves in general generating several versions of a program predicate for different uses of such predicate, making use of information obtained from global analysis performed by an abstract interpreter, and finally producing a new, '~multiply specialized" program.While the topic of multiple specialization of logic programs has received considerable theoretical attention, it has never been actually incorporated in a compiler and its effects quantified.We perform such a study in the context of a parallelizing compiler and show that it is indeed a relevant technique in practice.Also, we propose an implementation technique which has the same power as the strongest of the previously proposed techniques but requires little or no modification of an existing abstract interpreter.