The authors address the problem of deriving new logic programs from old ones via a specialization method that is related to program transformation techniques. The paper describes the basic rules for the specialization process and provides a strategy for their application. The power of the method is illustrated by some detailed examples, which include a sorting algorithm, a graph algorithm, and a context-free parser.
The idea of program specialization is not new [1], but the authors indicate a new technique for software reusability in the field of logic programming. Both researchers and programmers will find the paper stimulating and rewarding, although it may be a bit too long.