Conclog: A Methodological Approach to Concurrent Logic Programming (Lecture Notes in Computer Science)
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.