{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,19]],"date-time":"2026-03-19T20:37:35Z","timestamp":1773952655106,"version":"3.50.1"},"reference-count":26,"publisher":"Cambridge University Press (CUP)","issue":"4-5","license":[{"start":{"date-parts":[[2014,7,21]],"date-time":"2014-07-21T00:00:00Z","timestamp":1405900800000},"content-version":"unspecified","delay-in-days":20,"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":[[2014,7]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>We present a novel general resource analysis for logic programs based on sized types. Sized types are representations that incorporate structural (shape) information and allow expressing both lower and upper bounds on the size of a set of terms and their subterms at any position and depth. They also allow relating the sizes of terms and subterms occurring at different argument positions in logic predicates. Using these sized types, the resource analysis can infer both lower and upper bounds on the resources used by all the procedures in a program as functions on input term (and subterm) sizes, overcoming limitations of existing resource analyses and enhancing their precision. Our new resource analysis has been developed within the abstract interpretation framework, as an extension of the sized types abstract domain, and has been integrated into the Ciao preprocessor, CiaoPP. The abstract domain operations are integrated with the setting up and solving of recurrence equations for inferring both size and resource usage functions. We show that the analysis is an improvement over the previous resource analysis present in CiaoPP and compares well in power to state of the art systems.<\/jats:p>","DOI":"10.1017\/s147106841400057x","type":"journal-article","created":{"date-parts":[[2014,7,21]],"date-time":"2014-07-21T07:52:50Z","timestamp":1405929170000},"page":"739-754","source":"Crossref","is-referenced-by-count":23,"title":["Resource Usage Analysis of Logic Programs via Abstract Interpretation Using Sized Types"],"prefix":"10.1017","volume":"14","author":[{"given":"A.","family":"SERRANO","sequence":"first","affiliation":[]},{"given":"P.","family":"LOPEZ-GARCIA","sequence":"additional","affiliation":[]},{"given":"M. V.","family":"HERMENEGILDO","sequence":"additional","affiliation":[]}],"member":"56","published-online":{"date-parts":[[2014,7,21]]},"reference":[{"key":"S147106841400057X_ref16","first-page":"104","volume-title":"Technical Communications of the 26th Int'l. Conference on Logic Programming (ICLP'10)","author":"L\u00f3pez-Garc\u00eda","year":"2010"},{"key":"S147106841400057X_ref12","doi-asserted-by":"publisher","DOI":"10.1017\/S1471068411000457"},{"key":"S147106841400057X_ref24","first-page":"86","volume-title":"IFL","author":"Vasconcelos","year":"2003"},{"key":"S147106841400057X_ref25","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-45789-5_10"},{"key":"S147106841400057X_ref13","doi-asserted-by":"publisher","DOI":"10.1145\/2362389.2362393"},{"key":"S147106841400057X_ref15","doi-asserted-by":"publisher","DOI":"10.1007\/s00354-008-0085-1"},{"key":"S147106841400057X_ref26","doi-asserted-by":"publisher","DOI":"10.1145\/361002.361016"},{"key":"S147106841400057X_ref14","doi-asserted-by":"crossref","unstructured":"Igarashi A. and Kobayashi N. 2002. Resource usage analysis. In Symposium on Principles of Programming Languages. 331\u2013342.","DOI":"10.1145\/503272.503303"},{"key":"S147106841400057X_ref1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-18275-4_5"},{"key":"S147106841400057X_ref17","first-page":"166","volume-title":"1989 North American Conference on Logic Programming","author":"Muthukumar","year":"1989"},{"key":"S147106841400057X_ref20","doi-asserted-by":"crossref","unstructured":"Nielson F. , Nielson H. R. , and Seidl H. 2002. Automatic complexity analysis. In European Symposium on Programming. 243\u2013261.","DOI":"10.1007\/3-540-45927-8_18"},{"key":"S147106841400057X_ref11","doi-asserted-by":"crossref","unstructured":"Grobauer B. 2001. Cost recurrences for DML programs. In International Conference on Functional Programming. 253\u2013264.","DOI":"10.1145\/507635.507666"},{"key":"S147106841400057X_ref9","first-page":"291","volume-title":"1997 International Logic Programming Symposium","author":"Debray","year":"1997"},{"key":"S147106841400057X_ref8","first-page":"174","volume-title":"Proc. of the 1990 ACM Conf. on Programming Language Design and Implementation","author":"Debray","year":"1990"},{"key":"S147106841400057X_ref21","first-page":"270","volume-title":"International Static Analysis Symposium (SAS 1996)","author":"Puebla","year":"1996"},{"key":"S147106841400057X_ref18","doi-asserted-by":"publisher","DOI":"10.1016\/0743-1066(92)90035-2"},{"key":"S147106841400057X_ref22","volume-title":"4th ACM Conference on Functional Programming Languages and Computer Architecture (FPCA'89)","author":"Rosendahl","year":"1989"},{"key":"S147106841400057X_ref19","volume-title":"23rd International Conference on Logic Programming (ICLP'07)","author":"Navas","year":"2007"},{"key":"S147106841400057X_ref10","first-page":"1","volume-title":"PPDP","author":"Giesl","year":"2012"},{"key":"S147106841400057X_ref23","first-page":"1","volume-title":"Theory and Practice of Logic Programming, 29th Int'l. Conference on Logic Programming (ICLP'13) Special Issue, On-line Supplement","author":"Serrano","year":"2013"},{"key":"S147106841400057X_ref7","doi-asserted-by":"publisher","DOI":"10.1145\/161468.161472"},{"key":"S147106841400057X_ref6","first-page":"157","volume-title":"Types in Logic Programming","author":"Dart","year":"1992"},{"key":"S147106841400057X_ref4","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-24754-8_9"},{"key":"S147106841400057X_ref3","doi-asserted-by":"publisher","DOI":"10.1016\/0743-1066(91)80001-T"},{"key":"S147106841400057X_ref2","unstructured":"Bagnara R. , Pescetti A. , Zaccagnini A. , and Zaffanella E. 2005. PURRS: Towards Computer Algebra Support for Fully Automatic Worst-Case Complexity Analysis. Tech. rep. arXiv:cs\/0512056 available from http:\/\/arxiv.org\/"},{"key":"S147106841400057X_ref5","doi-asserted-by":"publisher","DOI":"10.1016\/0743-1066(92)90030-7"}],"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\/S147106841400057X","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,4,22]],"date-time":"2019-04-22T15:02:09Z","timestamp":1555945329000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S147106841400057X\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,7]]},"references-count":26,"journal-issue":{"issue":"4-5","published-print":{"date-parts":[[2014,7]]}},"alternative-id":["S147106841400057X"],"URL":"https:\/\/doi.org\/10.1017\/s147106841400057x","relation":{},"ISSN":["1471-0684","1475-3081"],"issn-type":[{"value":"1471-0684","type":"print"},{"value":"1475-3081","type":"electronic"}],"subject":[],"published":{"date-parts":[[2014,7]]}}}