Corpus ID: 211506040

Declarative Programming with Intensional Sets in Java Using JSetL

  title={Declarative Programming with Intensional Sets in Java Using JSetL},
  author={Maximiliano Cristi'a and Andrea Fois and G. Rossi},
Intensional sets are sets given by a property rather than by enumerating their elements. In previous work, we have proposed a decision procedure for a first-order logic language which provides Restricted Intensional Sets (RIS), i.e., a sub-class of intensional sets that are guaranteed to denote finite---though unbounded---sets. In this paper we show how RIS can be exploited as a convenient programming tool also in a conventional setting, namely, the imperative O-O language Java. We do this by… Expand
1 Citations
Automated Reasoning with Restricted Intensional Sets
A decision procedure for a first-order logic language offering both extensional and (a restricted form of) intensional sets (RIS). Expand


A Language for Programming in Logic with Finite Sets
An extended logic programming language is presented that embodies the fundamental form of set designation based on the (nesting) element insertion operator, and restricted universal quantifiers are shown to be programmable directly in the extended language and thus are added to the language as a convenient syntactic extension. Expand
The SuRE Programming Framework
It is shown that lazy enumeration of solutions is the key to declaratively pruning the search space in generate-and-test problems. Expand
CLAIRE: combining sets, search and rules to better express algorithms
This paper presents a programming language which includes paradigms that are usually associated with declarative languages, such as sets, rules and search, into an imperative (functional) language, and develops two kinds of compiler. Expand
Nondeterministic Programming in Java with JSetL
This paper shows how JSetL can be used to support general forms of nondeterministic programming in an object-oriented framework by combining different but related facilities such as logical variables, set data structures, unification, along with a constraint solver. Expand
Programming with Sets: An Introduction to SETL
SETL improves programmer speed and pro ductivity significantly, and also enhances program clarity and readability, and the classroom consequence is that students, freed of some of the burden of petty programming detail, can advance their knowledge of significant algorithms and of broader strategic issues in program development more rapidly than with more conventional programming languages. Expand
A Decision Procedure for Restricted Intensional Sets
A working implementation of RIS is presented as part of the \(\{log\}\) tool and it is shown how it compares with a mainstream solver and how it helps in the automatic verification of code fragments. Expand
JSetL: a Java library for supporting declarative programming in Java
The paper describes the main features of JSetL and it shows, through a number of simple examples, how these features can be exploited to support a real declarative programming style in Java. Expand
Programming with partially specified aggregates in Java
This paper considers the case where partially specified aggregates can occur in a conventional O-O programming language, specifically, the Java library JSetL, and shows how partially specified lists and sets can be conveniently exploited in a number of common programming problems. Expand
FaCiLe : a Functional Constraint Library
The user benefits from type inference and strong typing discipline, high level of abstraction, modules and objects system, as well as native code compilation efficiency, garbage collection and replay debugger, all features of OCaml (among many others) that allow to prototype and experiment. Expand
Solving Quantifier-Free First-Order Constraints Over Finite Sets and Binary Relations
A solver for a first-order logic language where sets and binary relations can be freely and naturally combined and is proved to be a sound semi-decision procedure for the accepted language. Expand