This paper describes the extension of a concurrent constraint programming (CCP) language with an interface to define new finite
domain constraints efficiently. While the extension is implemented
for the CCP language Oz, the described interface is well-suited to be
also applied to other CCP languages and even to Prolog-based
implementations with coroutining. The interface is easily extendable
to other constraint systems as done for set constraints.
Constraints are implemented as instances of C++ classes, so-called propagators. Propagators are completely separated from the runtime system. The supplied abstractions are as high-level as to hide away issues like suspension handling but provide an expressiveness adequate to implement global constraints employing advanced algorithmic techniques. This allows to solve demanding combinatorial problems, as for instance scheduling problems.
The presented interface exploits specific features of Oz, like equality constraints and local computation spaces, but avoids to bother the programmer with implementation details of these features.
Download PDF Show BibTeX
Login to edit