Component Programming and Interoperability in Constraint Solver Design

Prolog was once the main host for implementing constraint solvers. It seems that it is no longer so. To be useful, constraint solvers have to be integrable into industrial applications written in imperative or object-oriented languages; to be efficient, they have to interact with other solvers. To meet these requirements, many solvers are now implemented in the form of extensible object-oriented libraries. Following Pfister and Szyperski, we argue that ``objects are not enough,'' and we propose to design solvers as component-oriented libraries. We illustrate our approach by the description of the architecture of a prototype, and we assess its strong points and weaknesses.

[1]  Philippe Codognet,et al.  Compiling Constraints in clp(FD) , 1996, J. Log. Program..

[2]  Frédéric Goualard Langages et environnements en programmation par contraintes d'intervalles , 2000 .

[3]  David L. Waltz,et al.  Understanding Line drawings of Scenes with Shadows , 1975 .

[4]  Pascal Van Hentenryck,et al.  CLP(Intervals) Revisited , 1994, ILPS.

[5]  Jean-francois Puget,et al.  A C++ implementation of CLP , 1997 .

[6]  Richard Fikes,et al.  REF-ARF: A System for Solving Problems Stated as Procedures , 1970, Artif. Intell..

[7]  Samuel Webb Williams,et al.  The Component Object Model: A Technical Overview , 1994 .

[8]  Clemens A. Szyperski,et al.  Why objects are not enough , 1998 .

[9]  Michaël Rusinowitch,et al.  Implementing non-linear constraints with cooperative solvers , 1996, SAC '96.

[10]  Alan K. Mackworth Consistency in Networks of Relations , 1977, Artif. Intell..

[11]  Eero Hyvönen,et al.  Interval constraint satisfaction tool INC++ , 1993, Proceedings of 1993 IEEE Conference on Tools with Al (TAI-93).

[12]  Frédéric Benhamou,et al.  Combining Local Consistency, Symbolic Rewriting and Interval Methods , 1996, AISMC.

[13]  Pascal Van Hentenryck,et al.  The Constraint Logic Programming Language CHIP , 1988, FGCS.

[14]  Chiu Wo Choi,et al.  GIFT : A Generic Interface for reusing Filtering Algorithms , 2000 .

[15]  Gert Smolka,et al.  The Definition of Kernel Oz , 1994, Constraint Programming.

[16]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[17]  Hans W. Guesgen,et al.  Some Fundamental Properties of Local Constraint Propagation , 1988, Artif. Intell..

[18]  William J. Older CLP (intervals) , 1996, CSUR.

[19]  Peter J. Stuckey,et al.  Programming with Constraints: An Introduction , 1998 .

[20]  Michel Rueher,et al.  A Distributed Cooperating Constraints Solving System , 1995, Int. J. Artif. Intell. Tools.