The main purpose of this report is to illustrate the current state-of-the-art in sequential and parallel implementation of logic programming languages. The discussion has been subdivided into two parts. The first part concentrates on describing the current approaches that have been used in developing sequential and parallel logic programming systems, trying to emphasize the reasons behind the various choices that have been made.
The second part concentrates on analyzing the main problems which have to be tackled in order to achieve efficient execution in parallel logic programming systems. Many of these problems have not received a definitive answer yet, and in the document we tried to sketch what seem to be the most suitable ways to solve these open issues.
It is difficult to sum up in few words the state of parallel logic programming systems. This area is still object of intense research, too many problems are still open, and many issues are matter of debate between researchers.
Systems exploiting a single form of parallelism (and- or or-parallelism) exist and their efficiency is reaching a satisfactory level--although there is still considerable room for improvement. Systems tackling more general forms of parallelism (e.g. and/or-parallelism) are still eluding us. Answers to the main problems that have to be faced in these systems exist, but no ways have been found yet to engineer them in an actual implementation.