JSetL is a Java library that combines the object-oriented
programming paradigm of Java with valuable concepts of CLP languages, such
as logical variables, lists (possibly partially specified), unification,
constraint solving, nondeterminism. The library provides also sets
and set constraints like those found in CLP(SET) (see here).
Unification may involve logical variables, as well as list and set objects
("set unification"). Constraints concern basic set-theoretical operations
(e.g., , membership, union, intersection, etc.), as well as equality, inequality
and integer comparison operations. Constraint solving in JSetL is inherently
nondeterministic. In particular, solutions for set constraints are computed
nondeterministically, using choice points and backtracking. JSetL provides
also a simple way (the method setof) to collect into a set all
the computed solutions of a given constraint for a specified logical variable.
Finally, JSetL allows the user to define new constraints and to deal with
them as the built-in ones.
JSetL has been developed at the Department
of Mathematics of the University of
Parma (Italy). It is completely written in Java. The full Java code
of the JSetL library, along with sample programs and related documents,
is available at this page. The library is free software; you can redistribute
it and/or modify it under the terms of the GNU
General Public License. |