Guide to Constraint Programming
© Roman Barták, 1998
Systems
[pioneers] [environments]
[solvers] [applications]
This page contains a growing list of systems and programming languages exploiting
the constraint technology. I expect to extend this list successively and to add some description, references and
supported platforms to each system.
Contributions
to this page are very welcomed. I do not maintain this web page anymore, but if you have a new link to repair the link that does not work, please send it to me.
If you are looking for empirical comparison
of some constraint solvers, read the following papers:
- Antonio J. Fernández, Patricia M. Hill: A Comparative Study of Eight
Constraint Programming Languages Over the Boolean and Finite Domains, Constraints
Journal 5 (3): 275-301, Kluwer, July 2000. [Springer Link]
- Mark Wallace, Joachim Schimpf, Kish Shen, Warwick Harvey: On Benchmarking Constraint Logic Programming Platforms. Response to Fernandez and Hill's “A Comparative Study of Eight Constraint Programming Languages over the Boolean and Finite Domains”, Constraints 9 (1): 5-34, January 2004. [Springer Link]
Pioneering Systems
a pioneering system for CSPs modeling and solving
J.L. Lauriere
J.L. Lauriere: ALICE: A Language and a Program for Solving Combinatorial
Problems, in Artificial Intelligence, 10:29-127, 1978
a pioneering constraint logic programming system
Joxan Jaffar
J. Jaffar, S. Michaylov, P. Stuckey & R. Yap: The CLP(R) language
and system, in ACM Transactions on Programming Languages and Systems 14 (3): 339-395, 1992
a pioneering constraint system (early 1960s)
Ivan Sutherland
interactive drawing system, allowing the user to build geometric objects from language primitives and certain
constraints
I. Sutherland: Sketchpad:
a man-machine graphical communication system, in: Proceedings
of the IFIP Spring Joint Conference, 1963
interactive drawing system, included a facility for compiling constraint satisfaction plans
A. Borning: The
programming language aspects of ThingLab, a constraint oriented simulation laboratory,
in ACM Transaction on Programming Languages and Systems 3, pp. 353-387, 1981
Programming
Environments
a compact and nearly complete CLP system that runs Prolog and CLP(FD) programs
Neng-Fa Zhou
Constraint Handling in Prolog
a complete environment for the design and development of decision support systems
Cosytec
Constraint Handling Rules (CHR) are a high-level language extension to write constraint solvers
Thom
Fruehwirth
a generic language for semiring-based constraint solving
Yan Georget
a java library for constraint satisfaction problems (CSP),
constraint programming (CP) and explanation-based constraint solving (e-CP)
Fran輟is Laburthe,Narendra Jussien
an Object Oriented Programming Language for
Constraint-Based Local Search (MacOS X and Linux)
Pascal Van Hentenryck, Laurent Michel
a class library helping Java programmers to develop intelligent
programs requiring constraint satisfaction or optimization on finite domains.
Naoyuki
Tamura
a distributed constraint solver written as a C++ library
Youssef Hamadi
ECRC Logic Programming System, now open source
Crosscore
an open, free, portable, accessible, and efficient environment
for developing constraint-based systems and applications
Christian
Schulte
a free Prolog compiler with constraint solving over finite domains
Daniel Diaz
HySAT is a satisfiability checker for Boolean combinations
of arithmetic constraints over real- and integer-valued variables which
can also be used as a bounded model checker for hybrid (discrete-continuous)
systems
Universit舩
Oldenburg
a library of constraint algorithms designed to work with C++ programs
ILOG
PROLOG implementation with constraint technology package
IF Computer
a constraint solver written in Java
Koalog
ISO-PROLOG implementation in Java with interface for writing constraint solvers
IF Computer
fast black-box constraint solver
Gent,
Jefferson, Miguel, Petrie
concurrent constraint programming framework
DFKI
NSolver is a programming language extension for ECMA CLS-compliant
languages. It adds constraint programming capabilities to CLS-compliant
languages, such as MS .NET languages - J#, C#, C++.NET, VB.NET, JScript.NET.
Andy
Chun
Prolog system with integrated non-linear, Boolean and list constraint solver
PrologIA
a constraint satisfaction problem solver written in python
Logilab
Prolog development system with integrated finite domain constraint solver
SICS
an extension of Common Lisp that provides a comprehensive
constraint programming language
Jeffrey M. Siskind
David
A. McAllester
constraint functional logic system, designed to support
the main declarative programming styles and their combination
Fernando
S疇nz P駻ez
Constraint
Solvers
an extensible constraint programming framework enabling
the user to define its own constraints and search heuristics , available
as a C++ library.
Artelys
an incremental constraint solving toolkit for solving hierarchical systems of linear equalities and inequalities
Greg J. Badros
Alan Borning
an efficient, incremental local propagation constraint solver for solving hierarchical systems of linear equalities
University of Washington
Interval Solver for Microsoft Excel
a commercial implementation of interval constraints on the spreadsheet platform
Delisoft
a solver of algebraic nonlinear equations and inequalities
RRIAI
Applications
exploiting constraint technology
A tool for hardware verification, It generates inputs based on a chip's
specification , injects them to the (simulated) chip and verifies the chip's
states and outputs.
Verisity
[pioneers] [environments]
[solvers] [applications]