Constraint Handling Rules


Book Description

The definitive reference on Constraint Handling Rules, from the creator of the language.




Concurrent Constraint Programming


Book Description

Concurrent Constraint Programming introduces a new and rich class of programming languages based on the notion of computing with partial information, or constraints, that synthesize and extend work on concurrent logic programming and that offer a promising approach for treating thorny issues in the semantics of concurrent, nondeterministic programming languages. Saraswat develops an elegant and semantically tractable framework for computing with constraints, emphasizing their importance for communication and control in concurrent, programming languages. He describes the basic paradigm, illustrates its structure, discusses various augmentations, gives a simple implementation of a concrete language, and specifies its connections with other formalisms. In this framework, concurrently executing agents communicate by placing and checking constraints on shared variables in a common store. The major form of concurrency control in the system is through the operations of Atomic Tell -- an agent may instantaneously place constraints only if they are consistent with constraints that have already been placed -- and Blocking Ask -- an agent must block when it checks a constraint that is not yet known to hold. Other operations at a finer granularity of atomicity are also presented. Saraswat introduces and develops the concurrent constraint family of programming languages based on these ideas, shows how various constraint systems can naturally realize data structures common in computer science, and presents a formal operational semantics for many languages in the concurrent constraint family. In addition, he provides a concrete realization of the paradigm on a sequential machine by presenting a compiler for the concurrent constraint language Herbrand and demonstrates a number of constraint-based concurrent programming techniques that lead to novel presentations of algorithms for many concurrent programming problems.







Conclog: A Methodological Approach to Concurrent Logic Programming


Book Description

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.







Logic Programming '85


Book Description







Concepts, Design, and Performance Analysis of a Parallel Prolog Machine


Book Description

This monograph presents a novel execution model for the parallel execution of standard sequential Prolog. In this execution model Prolog procedure calls can be efficiently pipelined, and the author shows how even fully deterministic Prolog programs can be effectively mapped onto the proposed architecture. The design is based on a highly optimized abstract Prolog specific instruction set. A special feature of this work is a sophisticated classification scheme for Prolog variables which substantially reduces the overhead for unification with occur-check. To support the model an architecture consisting of a circular pipeline of independent processors has been designed. This pipeline has been designed to work as a co-processor to a UNIX based workstation. In contrast to other attempts to execute sequential Prolog in parallel, the proposed model does not restrict the use of any of the standard Prolog language features. The book gives a full account of the execution model, the system architecture, and the abstract Prolog instruction set.




Foundations of Data Organization and Algorithms


Book Description

The Third International Conference on Foundations of Data Organization and Algorithms has been organized by INRIA in Paris from June 21 to 23, 1989. Previous FODO Conferences were held in Warsaw, 1981, and in Kyoto, 1985. The goal of this year's conference is to present advances in techniques of permanent and temporary data organization in different fields. New applications such as image processing, graphics, geographic data processing, robotics, office automation, information systems, language translation, and expert systems have developed various data organizations and algorithms specific to the application requirements. The growing importance of these applications has created a need for general studies on data organization and algorithms as well as for specific studies on new database management systems and on filing services. The articles submitted for the conference were subject to the usual rigorous reviewing process and selected on that basis. They offer an excellent snapshot of the state of the art in the field and should prove invaluable for computer scientists faced by the problems of data organization which are raised by these new applications.




The Art of Prolog


Book Description

This second edition contains revised chapters taking into account recent research advances. More advanced exercises have been included, and "Part II The Prolog Language" has been modified to be compatible with the new Prolog standard. This is a graduate level text that can be used for self-study.