# [2-5] Free Constraint Systems

```This section contains constraint systems, constraint logic programming
systems, concurrent constraint languages, and other constraint
processing systems.

CIAL:

CIAL 1.0b is an interval constraint logic programming language. The main
difference between CIAL and other CLP(Interval) languages is that a
linear constraint solver, which is based on preconditioned interval
Gauss-Seidel method, is embedded in CIAL in addition to the interval
narrowing solver.

The main motivations for a linear solver are:

* Pure interval narrowing fails to narrow the intervals to any useful
width even for such simple systems as {X+Y=5, X-Y=6}.  Interval
splitting may help but is costly.

* Pure interval narrowing cannot always detect inconsistency or halt
(in a reasonable time).  A simple example is {A+1=D, A+B=D, A>0, B<0}.

* Efficient linear constraint solver is also important to the study of
efficient non-linear constraint-solving.  Recent results show that
interval Newton method works better than pure interval narrowing for
solving non-linear constraints, but may require to solve many linear
constraints in order to give the best results.

This version of CIAL prototype is implemented as an extension to CLP(R)
v1.2 and tested on Sun Sparc machines. You should have obtained CLP(R)
from IBM prior to installing CIAL. The distribution is in the form of
patches to the CLP(R) sources. [See entry on CLP(R) below].
Send email to cial@cs.cuhk.hk to request CIAL, and for more details.

Relevant papers include

C.K. Chiu and J.H.M. Lee, "Towards practical interval constraint solving
in logic programming", in Proceedings of the Eleventh International
Logic Programming Symposium, Ithaca, NY, USA, November 1994 (to appear).

J.H.M. Lee and T.W. Lee, "A WAM-based abstract machine for interval
constraint logic programming and the multiple-trailing problem", in
Proceedings Sixth IEEE International Conference on Tools with
Artificial Intelligence, New Orleans, Nov 1994.

cu-Prolog:
cu-Prolog is an experimental constraint logic programming language
available free from Japan's Institute for New Generation Computer
Technology (ICOT). Unlike most conventional CLP systems, cu-Prolog
allows user-defined predicates as constraints and is suitable for
implementing a natural language processing system based on the
unification-based grammar. For example, the cu-Prolog developers
implemented a JPSG (Japanese Phrase Structure Grammar) parser in
cu-Prolog with the JPSG Working Group (the chairman is Prof. GUNJI,
Takao of Osaka University) at ICOT. cu-Prolog is a complete
implementation of Constraint Unification (cu), hence the name.
cu-Prolog is implemented in C for BSD UNIX 4.2/3. Professor Sirai of
Chukyo-University has also implemented cu-Prolog for the Apple
Macintosh and DJ's GPP (80386/486 MS-DOS machine with the DOS
extender). cu-Prolog is available free by anonymous ftp from
ftp.icot.or.jp. For further information, send email to ifs@icot.or.jp,
or write to ICOT Free Software Desk, Institute for New Generation
Computer Technology, 21st Floor, Mita Kokusai Bldg., 4-28, Mita
1-chome, Minato-ku, Tokyo 108, Japan, fax +81-3-3456-1618.

clp(FD):
clp(FD) 2.2 is a constraint logic programming language over finite
domains and booleans based on the wamcc Prolog compiler (see [2-1]).
clp(FD) provides several constraints "a la CHIP" on finite domains and
booleans and some facilities for building new constraints. clp(FD) is
4 times faster than CHIP v3.2 on average.  clp(FD) requires GCC 2.4.5
or higher and has been tested on Sparc workstations, DEC (Ultrix),
Sony MIPS (R3000), and 386/486 PCs under linux. It should be
easily ported to 32-bit machines with GCC.  clp(FD) is available free
by anonymous ftp from
ftp.inria.fr:/INRIA/Projects/ChLoE/LOGIC_PROGRAMMING/clp_fd/
INRIA Rocquencourt, FRANCE.

CLP(R):
CLP(R) is a constraint logic programming language with real-arithmetic
constraints.  The implementation contains a built-in constraint solver
which deals with linear arithmetic and contains a mechanism for delaying
nonlinear constraints until they become linear.  Since CLP(R) subsumes
PROLOG, the system is also usable as a general-purpose logic programming
language. It includes facilities for meta-programming with constraints.
The system consists of a compiler, byte-code emulator, and constraint
solver. CLP(R) is written entirely in C and runs on Suns, Vaxen,
MIPS-based machines (Decstations, Silicon Graphics), IBM RS6000s and
PS2s. Includes MS-DOS support. It is available free from IBM for
academic and research purposes only. To get a copy, write
to Joxan Jaffar, H1-D48, IBM Thomas J. Watson Research Center,
P.O. Box 704, Yorktown Heights, NY 10598, or send email to
joxan@watson.ibm.com or joxan@yktvmh.bitnet. Current version 1.2.
<roland@bruce.cs.monash.edu.au>.

OZ:
Oz is a concurrent constraint programming language designed for
applications that require complex symbolic computations, organization
into multiple agents, and soft real-time control.  It is based on a
computation model that provides a uniform foundation for higher-order
functional programming, constraint logic programming, and concurrent
objects with multiple inheritance.  From functional languages Oz
inherits full compositionality, and from logic languages Oz inherits
logic variables and constraints (including feature and finite domain
constraints). Search in Oz is encapsulated (no backtracking) and
includes one, best and all solution strategies.

DFKI Oz is an interactive implementation of Oz featuring a programming
interface based on GNU Emacs, a concurrent browser, an object-oriented
interface to Tcl/Tk, powerful interoperability features (sockets, C,
C++), an incremental compiler, a garbage collector, and support for
stand-alone applications.  Performance is competitive with commercial
Prolog and Lisp systems.  DFKI Oz is available for many platforms
running Unix/X, including Sparcs and 486 PCs.

Applications DFKI Oz has already been used for include simulations,
multi-agent systems, natural language processing, virtual reality,
graphical user interfaces, scheduling, placement problems, and
configuration.

Version 1.0 of DFKI Oz has been released on January 23, 1995.  DFKI Oz
is available by anonymous ftp from
ps-ftp.dfki.uni-sb.de:/pub/oz
or through the WWW from
http://ps-www.dfki.uni-sb.de/
Tutorials, reference manuals, and research papers are available from
the same locations.  You may start with "A Survey of Oz" (8 pages) and
continue with "An Oz Primer" (110 pages). Questions may be directed to
oz@dfki.uni-sb.de. To join the Oz users mailing list, contact
oz-users-request@dfki.uni-sb.de.

See also ECLiPSe, Beta-Prolog, and LIFE in [2-1] and ALE in [1-5].
```
Go Back Up