{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2022,8,12]],"date-time":"2022-08-12T17:06:30Z","timestamp":1660323990649},"reference-count":57,"publisher":"Cambridge University Press (CUP)","issue":"5","license":[{"start":{"date-parts":[[2007,9,1]],"date-time":"2007-09-01T00:00:00Z","timestamp":1188604800000},"content-version":"unspecified","delay-in-days":0,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Theory and Practice of Logic Programming"],"published-print":{"date-parts":[[2007,9]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>In this paper, we present our proposal to Constraint Functional Logic Programming over Finite Domains (<jats:bold><jats:italic>CFLP<\/jats:italic><\/jats:bold>(<jats:inline-graphic xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" mimetype=\"image\" xlink:type=\"simple\" xlink:href=\"S1471068406002924_inline1\"><jats:alt-text>$\\fd$<\/jats:alt-text><\/jats:inline-graphic>)) with a lazy functional logic programming language which seamlessly embodies finite domain (<jats:inline-graphic xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" mimetype=\"image\" xlink:type=\"simple\" xlink:href=\"S1471068406002924_inline1\"><jats:alt-text>$\\fd$<\/jats:alt-text><\/jats:inline-graphic>) constraints. This proposal increases the expressiveness and power of constraint logic programming over finite domains (<jats:italic><jats:bold>CLP<\/jats:bold><\/jats:italic>(<jats:inline-graphic xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" mimetype=\"image\" xlink:type=\"simple\" xlink:href=\"S1471068406002924_inline1\"><jats:alt-text>$\\fd$<\/jats:alt-text><\/jats:inline-graphic>)) by combining functional and relational notation, curried expressions, higher-order functions, patterns, partial applications, non-determinism, lazy evaluation, logical variables, types, domain variables, constraint composition, and finite domain constraints. We describe the syntax of the language, its type discipline, and its declarative and operational semantics. We also describe<jats:inline-graphic xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" mimetype=\"image\" xlink:type=\"simple\" xlink:href=\"S1471068406002924_inline2\"><jats:alt-text>\\toy(fd)$<\/jats:alt-text><\/jats:inline-graphic>, an implementation for<jats:bold><jats:italic>CFLP<\/jats:italic><\/jats:bold>(<jats:inline-graphic xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" mimetype=\"image\" xlink:type=\"simple\" xlink:href=\"S1471068406002924_inline1\"><jats:alt-text>$\\fd$<\/jats:alt-text><\/jats:inline-graphic>), and a comparison of our approach with respect to<jats:italic><jats:bold>CLP<\/jats:bold><\/jats:italic>(<jats:inline-graphic xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" mimetype=\"image\" xlink:type=\"simple\" xlink:href=\"S1471068406002924_inline1\"><jats:alt-text>$\\fd$<\/jats:alt-text><\/jats:inline-graphic>) from a programming point of view, showing the new features we introduce. And, finally, we show a performance analysis which demonstrates that our implementation is competitive with respect to existing<jats:bold><jats:italic>CLP<\/jats:italic><\/jats:bold>(<jats:inline-graphic xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" mimetype=\"image\" xlink:type=\"simple\" xlink:href=\"S1471068406002924_inline1\"><jats:alt-text>$\\fd$<\/jats:alt-text><\/jats:inline-graphic>) systems and that clearly outperforms the closer approach to<jats:bold><jats:italic>CFLP<\/jats:italic><\/jats:bold>(<jats:inline-graphic xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" mimetype=\"image\" xlink:type=\"simple\" xlink:href=\"S1471068406002924_inline1\"><jats:alt-text>$\\fd$<\/jats:alt-text><\/jats:inline-graphic>).<\/jats:p>","DOI":"10.1017\/s1471068406002924","type":"journal-article","created":{"date-parts":[[2007,8,24]],"date-time":"2007-08-24T10:55:18Z","timestamp":1187952918000},"page":"537-582","source":"Crossref","is-referenced-by-count":15,"title":["Constraint functional logic programming over finite domains"],"prefix":"10.1017","volume":"7","author":[{"given":"ANTONIO J.","family":"FERN\u00c1NDEZ","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"TERESA","family":"HORTAL\u00c1-GONZ\u00c1LEZ","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"FERNANDO","family":"S\u00c1ENZ-P\u00c9REZ","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"RAFAEL","family":"DEL VADO-V\u00cdRSEDA","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"56","published-online":{"date-parts":[[2007,9,1]]},"reference":[{"key":"S1471068406002924_ref13","volume-title":"Constraint Processing","author":"Dechter","year":"2003"},{"key":"S1471068406002924_ref39","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-48685-2_19"},{"key":"S1471068406002924_ref7","article-title":"FaCiLe: a functional constraint library","volume":"14","author":"Barnier","year":"2001","journal-title":"ALP Newsletter"},{"key":"S1471068406002924_ref6","volume-title":"Joint Conference on Declarative Programming (APPIA-GULP-PRODE'96)","author":"Arenas","year":"1996"},{"key":"S1471068406002924_ref5","doi-asserted-by":"publisher","DOI":"10.1017\/CBO9780511615320"},{"key":"S1471068406002924_ref17","first-page":"290","volume-title":"8th European Conference on Artificial Intelligence (ECAI'88)","author":"Dincbas","year":"1988"},{"key":"S1471068406002924_ref1","doi-asserted-by":"publisher","DOI":"10.1016\/0743-1066(93)90043-G"},{"key":"S1471068406002924_ref18","doi-asserted-by":"publisher","DOI":"10.1145\/1085099.1085105"},{"key":"S1471068406002924_ref44","first-page":"223","volume-title":"International Symposium on Principles of Software Evolution (IPSE'2000)","author":"Marin","year":"2000"},{"key":"S1471068406002924_ref12","first-page":"682","volume-title":"International Conference on Fifth Generation Computer Systems (FGCS'92)","author":"Darlington","year":"1992"},{"key":"S1471068406002924_ref54","volume-title":"The OPL optimization programming language","author":"Van Hentenryck","year":"1999"},{"key":"S1471068406002924_ref15","doi-asserted-by":"publisher","DOI":"10.1007\/11559306_10"},{"key":"S1471068406002924_ref40","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-44716-4_12"},{"key":"S1471068406002924_ref8","unstructured":"Caballero R. , L\u00f3pez-Fraguas F. , and S\u00e1nchez J. 1997. User's manual for TOY. Technical report SIP-5797, Universidad Complutense de Madrid, Dpto. Lenguajes., Sistemas Inform\u00e1ticos y Programaci\u00f3n."},{"key":"S1471068406002924_ref23","volume-title":"AMPL: A modeling language for mathematical programming","author":"Fourer","year":"1993"},{"key":"S1471068406002924_ref10","doi-asserted-by":"publisher","DOI":"10.1016\/0743-1066(95)00121-2"},{"key":"S1471068406002924_ref49","doi-asserted-by":"publisher","DOI":"10.1109\/18.50388"},{"key":"S1471068406002924_ref4","doi-asserted-by":"publisher","DOI":"10.1007\/10720084_12"},{"key":"S1471068406002924_ref14","first-page":"213","volume-title":"ACM SIGPLAN","author":"del Vado-V\u00edrseda","year":"2003"},{"key":"S1471068406002924_ref2","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0013825"},{"key":"S1471068406002924_ref38","first-page":"43","volume-title":"6th ACM-SIGPLAN","author":"L\u00f3pez-Fraguas","year":"2004"},{"key":"S1471068406002924_ref41","doi-asserted-by":"crossref","DOI":"10.1007\/3-540-54444-5","volume-title":"Programming Language Implementation and Logic Programming, 3rd International Symposium, PLILP'91, Passau, Germany, August 26\u201328, 1991, Proceedings","author":"Maluszynski","year":"1991"},{"key":"S1471068406002924_ref48","volume-title":"The implementation of functional programming languages","author":"Peyton-Jones","year":"1987"},{"key":"S1471068406002924_ref57","first-page":"1","volume-title":"Proceedings of the 13th International Workshop on Logic Programming Environments","author":"Wielemaker","year":"2003"},{"key":"S1471068406002924_ref11","doi-asserted-by":"publisher","DOI":"10.1145\/582153.582176"},{"key":"S1471068406002924_ref20","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-36388-2_22"},{"key":"S1471068406002924_ref45","doi-asserted-by":"crossref","DOI":"10.7551\/mitpress\/5625.001.0001","volume-title":"Programming with constraints","author":"Marriot","year":"1998"},{"key":"S1471068406002924_ref19","first-page":"337","volume-title":"Research and Development in Intelligent Systems XIX","author":"Fern\u00e1ndez","year":"2002"},{"key":"S1471068406002924_ref24","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-662-05138-2"},{"key":"S1471068406002924_ref25","unstructured":"GNU Prolog. 2005. http:\/\/pauillac.inria.fr\/~diaz\/gnu-prolog\/."},{"key":"S1471068406002924_ref26","doi-asserted-by":"publisher","DOI":"10.1016\/S0743-1066(98)10029-8"},{"key":"S1471068406002924_ref27","first-page":"1","volume-title":"4th International Symposium on Functional and Logic Programming (FLOPS'99)","author":"Gonz\u00e1lez-Moreno","year":"1999"},{"key":"S1471068406002924_ref28","first-page":"633","volume-title":"Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics","author":"Gunter","year":"1990"},{"key":"S1471068406002924_ref29","doi-asserted-by":"crossref","unstructured":"Hanus M. 1994. The integration of functions into logic programming: a survey. The Journal of Logic Programming 19-20, 583\u2013628. Special issue: Ten Years of Logic Programming.","DOI":"10.1016\/0743-1066(94)90034-5"},{"key":"S1471068406002924_ref30","unstructured":"Hanus M. 1999. Curry: a truly integrated functional logic language. http:\/\/www.informatik.uni-kiel.de\/~curry\/."},{"key":"S1471068406002924_ref31","unstructured":"Hanus M. (editor). 2005. PAKCS 1.7.1, User manual (version of December 2005). The Portland Aachen Kiel Curry System. Available from http:\/\/www.informatik.uni-kiel.de\/~pakcs\/."},{"key":"S1471068406002924_ref32","doi-asserted-by":"publisher","DOI":"10.1016\/0004-3702(80)90051-X"},{"key":"S1471068406002924_ref3","doi-asserted-by":"publisher","DOI":"10.1145\/347476.347484"},{"key":"S1471068406002924_ref33","volume-title":"5th Conference of the Association of Asia-Pacific Operational Research Societies","author":"Henz","year":"2000"},{"key":"S1471068406002924_ref35","doi-asserted-by":"crossref","first-page":"184","DOI":"10.1007\/3-540-57186-8_79","volume-title":"5th International Symposium on Programming Language Implementation and Logic Programming PLILP'93","author":"Loogen","year":"1993"},{"key":"S1471068406002924_ref55","doi-asserted-by":"publisher","DOI":"10.1017\/S1471068403001741"},{"key":"S1471068406002924_ref36","first-page":"213","volume-title":"3rd International Conference on Algebraic and Logic Programming (ALP'92)","author":"L\u00f3pez-Fraguas","year":"1992"},{"key":"S1471068406002924_ref37","first-page":"5","volume-title":"5th International Workshop on Rewriting Logic and its Applications (WRLA'2004)","author":"L\u00f3pez-Fraguas","year":"2004"},{"key":"S1471068406002924_ref42","volume-title":"Functional logic programming with distributed constraint solving","author":"Marin","year":"2000"},{"key":"S1471068406002924_ref43","first-page":"23","volume-title":"3rd International Mathematical Symposium (IMS'99)","author":"Marin","year":"1999"},{"key":"S1471068406002924_ref9","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0033845"},{"key":"S1471068406002924_ref46","doi-asserted-by":"publisher","DOI":"10.1006\/jsco.1997.0197"},{"key":"S1471068406002924_ref47","article-title":"Complete selection functions for a lazy conditional narrowing calculus","volume":"3","author":"Middeldorp","year":"2002","journal-title":"Journal of Functional and Logic Programming"},{"key":"S1471068406002924_ref22","doi-asserted-by":"publisher","DOI":"10.1007\/BF01189020"},{"key":"S1471068406002924_ref34","doi-asserted-by":"publisher","DOI":"10.1016\/0743-1066(94)90033-7"},{"key":"S1471068406002924_ref50","unstructured":"SICStus Prolog. 2005. http:\/\/www.sics.se\/isl\/sicstus."},{"key":"S1471068406002924_ref51","unstructured":"SWI-Prolog. 2005. http:\/\/www.swi-prolog.org\/."},{"key":"S1471068406002924_ref52","volume-title":"Foundations of constraint satisfaction","author":"Tsang","year":"1993"},{"key":"S1471068406002924_ref53","volume-title":"Constraint satisfaction in logic programming","author":"Van Hentenryck","year":"1989"},{"key":"S1471068406002924_ref56","volume-title":"Concepts, techniques and models of computer programming","author":"Van Roy","year":"2004"},{"key":"S1471068406002924_ref16","unstructured":"Diaz D. and Codognet P. 2001. Design and implementation of the GNU prolog system. Journal of Functional and Logic Programming 2001, 6 (October)."},{"key":"S1471068406002924_ref21","unstructured":"Fern\u00e1ndez A. J. , Hortal\u00e1-Gonz\u00e1lez T. , and S\u00e1enz-P\u00e9rez F. 2004. TOY(FD): System, Sources and user manual. Available at http:\/\/toy.sourceforge.net\/."}],"container-title":["Theory and Practice of Logic Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S1471068406002924","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2020,4,26]],"date-time":"2020-04-26T03:52:47Z","timestamp":1587873167000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S1471068406002924\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2007,9]]},"references-count":57,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2007,9]]}},"alternative-id":["S1471068406002924"],"URL":"https:\/\/doi.org\/10.1017\/s1471068406002924","relation":{},"ISSN":["1471-0684","1475-3081"],"issn-type":[{"value":"1471-0684","type":"print"},{"value":"1475-3081","type":"electronic"}],"subject":[],"published":{"date-parts":[[2007,9]]}}}