{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,2,21]],"date-time":"2025-02-21T12:59:21Z","timestamp":1740142761885,"version":"3.37.3"},"reference-count":35,"publisher":"Oxford University Press (OUP)","issue":"3","license":[{"start":{"date-parts":[[2022,2,8]],"date-time":"2022-02-08T00:00:00Z","timestamp":1644278400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/academic.oup.com\/journals\/pages\/open_access\/funder_policies\/chorus\/standard_publication_model"}],"funder":[{"DOI":"10.13039\/100017142","name":"Gruppo Nazionale per il Calcolo Scientifico","doi-asserted-by":"publisher","id":[{"id":"10.13039\/100017142","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2023,3,15]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Intensional sets are sets given by a property rather than by enumerating their elements. In a previous work, we have proposed a decision procedure for a first-order logic language which provides restricted intensional sets (RISs), i.e. a sub-class of intensional sets that are guaranteed to denote finite\u2014though unbounded\u2014sets. 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 considering a Java library, called JSetL, that integrates the notions of logical variable, (set) unification and constraints that are typical of constraint logic programming languages into the Java language. We show how JSetL is naturally extended to accommodate for RIS and RIS constraints and how this extension can be exploited; on the one hand, to support a more declarative style of programming and, on the other hand, to effectively enhance the expressive power of the constraint language provided by the library.<\/jats:p>","DOI":"10.1093\/comjnl\/bxab195","type":"journal-article","created":{"date-parts":[[2021,12,22]],"date-time":"2021-12-22T20:11:39Z","timestamp":1640203899000},"page":"763-784","source":"Crossref","is-referenced-by-count":0,"title":["Declarative Programming with Intensional Sets in Java Using JSetL"],"prefix":"10.1093","volume":"66","author":[{"given":"Maximiliano","family":"Cristi\u00e1","sequence":"first","affiliation":[{"name":"Universidad Nacional de Rosario and CIFASIS , Argentina"}]},{"given":"Andrea","family":"Fois","sequence":"additional","affiliation":[{"name":"Universit\u00e0 di Parma , Italy"}]},{"given":"Gianfranco","family":"Rossi","sequence":"additional","affiliation":[{"name":"Universit\u00e0 di Parma , Italy"}]}],"member":"286","published-online":{"date-parts":[[2022,2,8]]},"reference":[{"volume-title":"Using Z: Specification, Refinement, and Proof","year":"1996","author":"Woodcock","key":"2023031708555754500_"},{"volume-title":"The B-Method: An Introduction Cornerstones of Computing","year":"2001","author":"Schneider","key":"2023031708555754500_"},{"key":"2023031708555754500_","doi-asserted-by":"crossref","DOI":"10.1007\/978-1-4613-9575-1","volume-title":"Programming with Sets","author":"Schwartz","year":"1986"},{"key":"2023031708555754500_","doi-asserted-by":"crossref","first-page":"769","DOI":"10.1017\/S1471068401001363","article-title":"CLAIRE: Combining sets, search and rules to better express algorithms","volume":"2","author":"Caseau","year":"2002","journal-title":"Theory Pract. Log. Program."},{"key":"2023031708555754500_","first-page":"103","article-title":"An overview of Miranda","volume":"33","author":"Turner","year":"1987","journal-title":"Bull. Eur. Assoc. Theor. Comput. Sci. EATCS"},{"article-title":"Bandicoot","year":"2020","author":"Cherkashin","key":"2023031708555754500_"},{"key":"2023031708555754500_","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/103140.103141","article-title":"A rule-based language with functions and sets","volume":"16","author":"Abiteboul","year":"1991","journal-title":"ACM Trans. Database Syst."},{"key":"2023031708555754500_","doi-asserted-by":"crossref","DOI":"10.1007\/3-540-60043-4_82","article-title":"The Sure Programming Framework","volume-title":"Algebraic Methodology and Software Technology, 4th Int. Conf., AMAST \u201895","author":"Jayaraman","year":"1995"},{"key":"2023031708555754500_","doi-asserted-by":"crossref","first-page":"271","DOI":"10.1016\/S0743-1066(98)00003-X","article-title":"Relationlog: A typed extension to datalog with sets and tuples","volume":"36","author":"Liu","year":"1998","journal-title":"J. Log. Program."},{"key":"2023031708555754500_","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1016\/0743-1066(95)00147-6","article-title":"A language for programming in logic with finite sets","volume":"28","author":"Dovier","year":"1996","journal-title":"J. Log. Program."},{"key":"2023031708555754500_","doi-asserted-by":"crossref","first-page":"191","DOI":"10.1007\/BF00137870","article-title":"Interval propagation to reason about sets: Definition and implementation of a practical language","volume":"1","author":"Gervet","year":"1997","journal-title":"Constraints"},{"key":"2023031708555754500_","doi-asserted-by":"crossref","first-page":"861","DOI":"10.1145\/365151.365169","article-title":"Sets and constraint logic programming","volume":"22","author":"Dovier","year":"2000","journal-title":"ACM Trans. Program. Lang. Syst."},{"volume-title":"Workshop on Logic Programming with Sets, in conjunction with ICLP 1993","year":"1993","author":"Omodeo","key":"2023031708555754500_"},{"volume-title":"Workshop on declarative programming with sets","year":"1999","author":"Jayaraman","key":"2023031708555754500_"},{"key":"2023031708555754500_","doi-asserted-by":"crossref","first-page":"115","DOI":"10.1002\/spe.749","article-title":"JSetL: A Java library for supporting declarative programming in Java","volume":"37","author":"Rossi","year":"2007","journal-title":"Softw. Pract. Exp."},{"key":"2023031708555754500_","first-page":"178","article-title":"Programming with partially specified aggregates in Java","volume":"37","author":"Bergenti","year":"2011","journal-title":"Comput. Lang. Syst. Struct."},{"key":"2023031708555754500_","doi-asserted-by":"crossref","first-page":"393","DOI":"10.3233\/FI-2015-1260","article-title":"Nondeterministic programming in Java with JSetL","volume":"140","author":"Rossi","year":"2015","journal-title":"Fundam. Inform."},{"key":"2023031708555754500_","doi-asserted-by":"crossref","first-page":"284","DOI":"10.1007\/978-3-540-24599-5_20","article-title":"Intensional Sets in CLP","volume-title":"Logic Programming","author":"Dovier","year":"2003"},{"key":"2023031708555754500_","doi-asserted-by":"crossref","first-page":"809","DOI":"10.1007\/s10817-021-09589-w","article-title":"Automated reasoning with restricted intensional sets","volume":"65","author":"Cristi\u00e1","year":"2021","journal-title":"J. Autom. Reason."},{"key":"2023031708555754500_","first-page":"219","article-title":"Integrating Finite Domain Constraints and CLP with Sets","volume-title":"Proc. 5th ACM SIGPLAN Int. Conf. Principles and Practice of Declaritive Programming","author":"Dal Pal\u00fa","year":"2003"},{"key":"2023031708555754500_","doi-asserted-by":"crossref","first-page":"185","DOI":"10.1016\/0743-1066(95)00121-2","article-title":"Compiling constraints in clp(FD)","volume":"27","author":"Codognet","year":"1996","journal-title":"J. Log. Program."},{"volume-title":"Choco solver documentation","year":"2016","author":"Prud\u2019homme","key":"2023031708555754500_"},{"key":"2023031708555754500_","article-title":"FaCiLe: A Functional Constraint Library","volume-title":"CICLOPS 2001: Colloquium on Implementation of Constraint and LOgic Programming Systems","author":"Brisset","year":"2001"},{"volume-title":"JaCoP\u2014Java constraint programming solver","author":"Kuchcinski","key":"2023031708555754500_"},{"volume-title":"Gecode\u2014Generic constraint development environment","author":"Tack","key":"2023031708555754500_"},{"key":"2023031708555754500_","doi-asserted-by":"crossref","first-page":"645","DOI":"10.1017\/S1471068406002730","article-title":"Set unification","volume":"6","author":"Dovier","year":"2006","journal-title":"Theory Pract. Log. Program."},{"author":"Rossi","key":"2023031708555754500_","article-title":"JSetL user\u2019s manual (version 3.0)"},{"key":"2023031708555754500_","doi-asserted-by":"crossref","first-page":"295","DOI":"10.1007\/s10817-019-09520-4","article-title":"Solving quantifier-free first-order constraints over finite sets and binary relations","volume":"64","author":"Cristi\u00e1","year":"2020","journal-title":"J. Autom. Reason."},{"volume-title":"JSetL\u2014A Java set-oriented library to support declarative (constraint) programming","author":"Rossi","key":"2023031708555754500_"},{"volume-title":"A Paging Experiment with the Multics System","year":"1968","author":"Corbat\u00f3","key":"2023031708555754500_"},{"volume-title":"{log}","year":"2008","author":"Rossi","key":"2023031708555754500_"},{"key":"2023031708555754500_","first-page":"166","article-title":"The Scala Experiment","volume-title":"SIGPLAN Not.","author":"Odersky","year":"2006"},{"key":"2023031708555754500_","doi-asserted-by":"crossref","first-page":"855","DOI":"10.1007\/978-3-540-45236-2_46","article-title":"ProB: A Model Checker for B","volume-title":"FME 2003: Formal Methods: Int. Symposium of Formal Methods Europe","author":"Leuschel","year":"2003"},{"volume-title":"The G\u00f6del Programming Language","year":"1994","author":"Hill","key":"2023031708555754500_"},{"key":"2023031708555754500_","first-page":"152","article-title":"Set Grouping and Layering in Horn Clause Programs","volume-title":"Logic Programming, Proc. Fourth Int. Conf.","author":"Shmueli","year":"1987"}],"container-title":["The Computer Journal"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/academic.oup.com\/comjnl\/article-pdf\/66\/3\/763\/49531126\/bxab195.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/academic.oup.com\/comjnl\/article-pdf\/66\/3\/763\/49531126\/bxab195.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,11,14]],"date-time":"2023-11-14T19:43:50Z","timestamp":1699991030000},"score":1,"resource":{"primary":{"URL":"https:\/\/academic.oup.com\/comjnl\/article\/66\/3\/763\/6521749"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,2,8]]},"references-count":35,"journal-issue":{"issue":"3","published-online":{"date-parts":[[2022,2,8]]},"published-print":{"date-parts":[[2023,3,15]]}},"URL":"https:\/\/doi.org\/10.1093\/comjnl\/bxab195","relation":{},"ISSN":["0010-4620","1460-2067"],"issn-type":[{"type":"print","value":"0010-4620"},{"type":"electronic","value":"1460-2067"}],"subject":[],"published-other":{"date-parts":[[2023,3]]},"published":{"date-parts":[[2022,2,8]]}}}