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, unification,
constraint solving, nondeterminism. The library provides also sets
and set constraints like those found in CLP(SET)
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.
Set constraints are solved using a complete solver that accounts for partially
specified sets (i.e., sets containing unknown elements).
Equality, inequality and comparison constraints on integers are dealt with as
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 Lesser General Public License.
The latest releases of JSetL have been partially supported by the GNCS project
2012 "Specifiche insiemistiche eseguibili e loro verifica formale".
The library is carried out as a Java package. The classes
of the library must be saved into a folder named JSetL. To use JSetL in
a program it is necessary to import the library by inserting the statement:
at the beginning of the source file. JSetL must be a sub-folder
of the folder in which the classes that import JSetL are saved. Otherwise,
the path from root to the library folder must be added to the variable
- Papers describing/using JSetL:
- G. Rossi, E. Panegai, and E. Poleo.
JSetL: a Java Library for Supporting Declarative Programming in
Software-Practice & Experience (ISSN: 0038-0644), 37:115-149,
Preliminary version available
- G. Rossi, F. Bergenti.
Nondeterministic Programming in Java with JSetL.
In D.Cantone and M.Nicolosi Asmundo, eds,
CILC 2013: Italian Conference on Computational Logic,
CEUR Workshop Proceedings, Vol. 1068,
ISSN 1630-0073, Sept. 2013, 211-226
Extended preliminary version available as
Research Report "Quaderno del Dipartimento di Matematica e Informatica", n. 510,
Università di Parma, January 2013.
- G. Rossi.
Programming with Partially Specified Collections.
In D. Delahaye, C. Dubois, eds,
1st International Workshop about Sets and Tools (SETS 2014),
Toulouse (France), June 2014, 69-83
- Related papers:
- A. Dovier, C. Piazza, E. Pontelli, and
Sets and Constraint Logic Programming.
ACM Transaction on Programming Language and Systems,
Vol. 22 (5), Sept. 2000, 861-931
A. Dal Palu', A. Dovier, E. Pontelli, and G. Rossi.
Integrating Finite Domain Constraints and CLP with Sets.
In D. Miller, ed., Fifth ACM-SIGPLAN Conference on Principles and
Practice of Declarative Programming, ACM Press (ISBN/ISSN: 1-58113-705-2),
2003, 219-229. (.ps)
Also presented at 12th
International Workshop on Functional and (constraint) Logic Programming,
Valencia, June 2003.
- Original development by:
- Elisabetta Poleo
- Gianfranco Rossi
- Subsequent enhancements by (in alphabetical order):
- Roberto Amadini
- Federico Bergentii
- Luca Chiarabini
- Elio Panegai
- Gianfranco Rossi
- with the contribution of:
- Federica Belli
- Fabio Biselli
- Alessio Bortolotti
- Alberto Dalla Valle
- Delia Di Giorgio
- Michele Giacomo Filippi
- Michele Giacobini
- Lorenzo Furini
- Lucia Guglielmetti
- Andrea Longo
- Daniele Pandini
- Luca Pedrelli
- Nadia Toledi
- Riccardo Zangrandi
- Currently maintained by:
- Gianfranco Rossi (gianfranco.rossi at unipr.it)