Reforming compilation of logic programs
Håkan Millroth · 1990
. We present a new method for parallel logic programming which is based on compilation of Tarnlund's inference system Reform. The idea is to compile recursively defined programs to parallel iterative code. Beside earlier parallel concepts, such as OR-parallelism and AND-parallelism, we have new forms of Reform parallelism: unification parallelism and recursion parallelism. These are implemented in our method by applying standard loop parallelization techniques to the iterative code obtained by compilation. 1. INTRODUCTION Almost any logic program using a significant amount of computer time spends most of that time executing one or more recursive procedures. It is therefore unfortunate that parallel systems based on SLD-resolution cannot fully exploit the parallelism inherent in recursive programs. As an example, consider the program for checking whether a number z is smaller than each element of a list: LessAll(Ø, z). LessAll(x.y, z) / / / z ! x LessAll(y, z). Suppose we invoke thi...