Design and Implementation of a Finite Domain Constraint Logic Programming System based on PROLOG with Coroutining

Jörg P. Müller

DFKI DFKI Documents (D) 91-02 1991.


Many problems in Artificial Intelligence can be regarded as constraint solving problems (CSPs). Due to its relational, declarative and nondeterministic form, logic programming offers a convenient way for stating CSPs. Unfortunately, logic programming languages such as e. g. PROLOG tend to be inefficient for solving CSPs because of their poor control facilities. One current way of remedying this is the Constraint Logic Programming approach: By integrating a domain concept for logic variables, and consistency techniques such as forward checking or looking-ahead into PROLOG, the search space can be restricted in an a priori manner. Thus, a more efficient control strategies can be realized, preserving the 'clean' dual PROLOG semantics. In the paper, a horizontal compilation approach towards a CLP system is presented. A PROLOG system providing a delay mechanism is used in order to achieve the control behaviour described above.

Deutsches Forschungszentrum für Künstliche Intelligenz
German Research Center for Artificial Intelligence