{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,2,10]],"date-time":"2024-02-10T22:10:59Z","timestamp":1707603059625},"reference-count":35,"publisher":"Cambridge University Press (CUP)","issue":"1-2","license":[{"start":{"date-parts":[[2007,1,1]],"date-time":"2007-01-01T00:00:00Z","timestamp":1167609600000},"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,1]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>To alleviate the inefficiencies caused by the interaction of the logic and functional sides, integrated languages may take advantage of<jats:italic>demand<\/jats:italic>information, i.e. knowing in advance which computations are needed and, to which extent, in a particular context. This work studies<jats:italic>demand analysis<\/jats:italic>\u2013 which is closely related to<jats:italic>backwards strictness analysis<\/jats:italic>\u2013 in a semantic framework of<jats:italic>partial predicates<\/jats:italic>, which in turn are constructive realizations of ideals in a domain. This will allow us to give a concise, unified presentation of demand analysis, to relate it to other analyses based on abstract interpretation or strictness logics, some hints for the implementation, and, more important, to prove the soundness of our analysis based on<jats:italic>demand equations<\/jats:italic>. There are also some innovative results. One of them is that a set constraint-based analysis has been derived in a stepwise manner using ideas taken from the area of program transformation. The other one is the possibility of using program transformation itself to perform the analysis, specially in those domains of properties where algorithms based on constraint solving are too weak.<\/jats:p>","DOI":"10.1017\/s1471068406002882","type":"journal-article","created":{"date-parts":[[2007,2,9]],"date-time":"2007-02-09T12:38:10Z","timestamp":1171024690000},"page":"153-182","source":"Crossref","is-referenced-by-count":0,"title":["Demand analysis with partial predicates"],"prefix":"10.1017","volume":"7","author":[{"given":"JULIO","family":"MARI\u00d1O","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"\u00c1NGEL","family":"HERRANZ","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"JUAN JOS\u00c9","family":"MORENO-NAVARRO","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"56","published-online":{"date-parts":[[2007,1,1]]},"reference":[{"key":"S1471068406002882_N10631","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0032739"},{"key":"S1471068406002882_N105D3","volume-title":"Handbook of Theoretical Computer Science","author":"van Leeuwen","year":"1990"},{"key":"S1471068406002882_N10520","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-09981-6_19"},{"key":"S1471068406002882_N104F1","first-page":"49","volume-title":"Proceedings of the Eighth International Conference on Logic Programming","author":"Muthukumar","year":"1991"},{"key":"S1471068406002882_N1045C","doi-asserted-by":"publisher","DOI":"10.1016\/0743-1066(92)90024-W"},{"key":"S1471068406002882_N103C7","first-page":"63","volume-title":"Practical Aspects of Declarative Programming (PADL 2000)","author":"Mari\u00f1o","year":"2000"},{"key":"S1471068406002882_N103AA","volume-title":"Workshop on Functional and Logic Programming, Baiersbronn-Schwarzenberg (Germany)","author":"Mari\u00f1o","year":"1995"},{"key":"S1471068406002882_N10371","first-page":"253","volume-title":"Workshop on Logic on Program Synthesis and Transformation \u2013 LOPSTR'92","author":"Mari\u00f1o","year":"1992"},{"key":"S1471068406002882_N1033E","volume-title":"Workshop on Global Compilation, International Logic Programming Symposium October 26\u201330, 1993, Vancouver, BC, Canada","author":"Mari\u00f1o","year":"1993"},{"key":"S1471068406002882_N10326","unstructured":"Mari\u00f1o J. and Herranz \u00c1. 1993. Specialized compilation of lazy functional logic programs. In Segundo Congreso Nacional de Programaci\u00f3n Declarativa \u2013 2nd Spanish Conference on Declarative Programming (ProDe'93). Instituto de Investigaci\u00f3n en Inteligencia Artificial, CSIC, 39\u201355."},{"key":"S1471068406002882_N10318","unstructured":"Mari\u00f1o J. 2002. Semantics and analysis of functional logic programs. Ph.D. thesis, Universidad Polit\u00e9cnica de Madrid, Facultad de Inform\u00e1tica."},{"key":"S1471068406002882_N102A4","doi-asserted-by":"publisher","DOI":"10.1016\/0743-1066(92)90034-Z"},{"key":"S1471068406002882_N10266","volume-title":"Curry: An Integrated Functional Logic Language","author":"Hanus","year":"2003"},{"key":"S1471068406002882_N10249","doi-asserted-by":"publisher","DOI":"10.1016\/0743-1066(94)90034-5"},{"key":"S1471068406002882_N1022F","first-page":"95","volume-title":"Proc. JICSLP'96 Workshop on Multi-Paradigm Logic Programming","author":"Genius","year":"1996"},{"key":"S1471068406002882_N10569","first-page":"228","volume-title":"International Conference on Functional Programming, ICFP05","author":"Ramos","year":"2005"},{"key":"S1471068406002882_N101D7","doi-asserted-by":"publisher","DOI":"10.1016\/S0743-1066(99)00004-7"},{"key":"S1471068406002882_N10164","unstructured":"Benton P. 1992. Strictness analysis of lazy functional programs. Ph.D. thesis, University of Cambridge."},{"key":"S1471068406002882_N1019E","first-page":"22","volume-title":"APPIA-GULP-PRODE 2000 (AGP'2000)","author":"Comini","year":"2000"},{"key":"S1471068406002882_N10138","doi-asserted-by":"publisher","DOI":"10.1145\/347476.347484"},{"key":"S1471068406002882_N10172","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0052372"},{"key":"S1471068406002882_N105AD","doi-asserted-by":"publisher","DOI":"10.1145\/218570.218573"},{"key":"S1471068406002882_N1047F","volume-title":"Joint Conference on Declarative Programming GULP-PRODE'94","author":"Moreno-Navarro","year":"1994"},{"key":"S1471068406002882_N1060E","first-page":"184","volume-title":"5th International Symposium on Programming Language Implementation and Logic Programming, PLILP'93","author":"Wadler","year":"1993"},{"key":"S1471068406002882_N10203","first-page":"44","volume-title":"Proceedings of the 2000 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM'2000), Boston, Mass.","author":"Gallagher","year":"2000"},{"key":"S1471068406002882_N102E1","first-page":"385","volume-title":"Third International Conference on Functional Programming Languages and Computer Architecture","author":"Loogen","year":"1987"},{"key":"S1471068406002882_N1049F","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-60983-0_15"},{"key":"S1471068406002882_N102CA","volume-title":"4th. International Conference on Computer Languages","author":"Jensen","year":"1994"},{"key":"S1471068406002882_N103FA","volume-title":"7th Workshop on Functional and Logic Programming (WFLP98)","author":"Mari\u00f1o","year":"1998"},{"key":"S1471068406002882_N105E7","volume-title":"Abstract Interpretation of Declarative Languages","author":"Wadler","year":"1987"},{"key":"S1471068406002882_N1041D","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-53162-9_47"},{"key":"S1471068406002882_N104BC","doi-asserted-by":"crossref","first-page":"167","DOI":"10.1007\/3-540-57186-8_78","volume-title":"5th International Symposium on Programming Language Implementation and Logic Programming, PLILP'93","author":"Moreno-Navarro","year":"1993"},{"key":"S1471068406002882_N1059B","unstructured":"Rey J. M. 2003. Demand analysis via the dynamic generation of finite domains. Available at http:\/\/babel.ls.fi.upm.es\/publications."},{"key":"S1471068406002882_N1053D","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0017466"},{"key":"S1471068406002882_N1010F","doi-asserted-by":"crossref","first-page":"138","DOI":"10.7551\/mitpress\/4299.003.0016","volume-title":"International Conference on Logic Programming","author":"Antoy","year":"1997"}],"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\/S1471068406002882","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,2,10]],"date-time":"2024-02-10T21:54:10Z","timestamp":1707602050000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S1471068406002882\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2007,1]]},"references-count":35,"journal-issue":{"issue":"1-2","published-print":{"date-parts":[[2007,1]]}},"alternative-id":["S1471068406002882"],"URL":"https:\/\/doi.org\/10.1017\/s1471068406002882","relation":{},"ISSN":["1471-0684","1475-3081"],"issn-type":[{"value":"1471-0684","type":"print"},{"value":"1475-3081","type":"electronic"}],"subject":[],"published":{"date-parts":[[2007,1]]}}}