This book presents a new concurrent logic programming
language called Conclog and a methodology for programming in
it.
Conclog was designed bytaking the ideal features of logic
programming as reference, rather than by concentrating
directly on operational tricks to ensure efficiency. This
leads to quite easy declarative programming. Concern for
soundness and completeness ensures that multi-directional
and multi-solution correct procedures can be coded quite
straightforwardly. Assuming suitable hypotheses on their
uses, they can be transformed into very efficient versions
thanks to the introduction of appropriate control
information. Correctness-preserving properties are given for
that purpose.
The designof Conclog involves three steps. First, a sound
and complete parallel execution model of Horn clause
programs is proposed which reduces subgoals of conjunctions
independently and uses a calculus for reconciling
inconsistent bindings. Second, this is extended to handle
negation as completely as possible. Third, a minimal and
reasonably complete set of extra-logical features are
defined for optimization and practical purposes.
The second part of the book presents a methodology for
constructing Conclog in a rigorous way. This covers the
entire programming process, from informal specifications via
logic descriptions to efficient programs. The methodology
can be adapted to other languages.