Abstract

ABSTRACT. A Prolog or a Concurrent Prolog program can be seen as a specialization or refinement of a program in Horn Clause Logic: In addition to the logic component a Prolog or Concurrent Prolog program contains information about the flow of control. In Prolog we have the cut statement and a leftmost depth first search strategy, in Concurrent Prolog we have read-only variables and commits. In this paper we study the flow of control of these languages by giving transition systems for abstract versions of Prolog, Horn Clause Logic and Concurrent Prolog. On the basis of these transition systems we define operational semantics for all three languages. Three basic sets (success set, finite failure set and the infinite failure set or divergence set) can be derived from the operational semantics. A comparison is made between the different sets: for Prolog we show that the success set and the finite failure sets of a Prolog program are smaller than the corresponding sets of a Horn Clause Logic program. The infinite failure sets are incomparable. A similar comparison is made between the success set and the finite failure sets for Horn Clause Logic and Concurrent Prolog. These comparisons give some feeling what happens if we put extra logical information in Horn Clause Logic programs.Remark: part of the work was carried out in the ESPRIT Basic Research Action Integration.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call