{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,5,13]],"date-time":"2025-05-13T22:01:23Z","timestamp":1747173683120,"version":"3.40.5"},"reference-count":11,"publisher":"Cambridge University Press (CUP)","issue":"4","license":[{"start":{"date-parts":[[2023,8,24]],"date-time":"2023-08-24T00:00:00Z","timestamp":1692835200000},"content-version":"unspecified","delay-in-days":54,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":["cambridge.org"],"crossmark-restriction":true},"short-container-title":["Theory and Practice of Logic Programming"],"published-print":{"date-parts":[[2023,7]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>We discuss how to implement backjumping (or intelligent backtracking) in Prolog by using the built-ins throw\/1 and catch\/3. We show that it is impossible in a general case, contrary to a claim that \u201cbackjumping is exception handling.\" We provide two solutions. One works for binary programs; in a general case it imposes a restriction on where backjumping may originate. The other restricts the class of backjump targets. We also discuss implementing backjumping by using backtracking and the Prolog database. Additionally, we explain the semantics of Prolog exception handling in the presence of coroutining.<\/jats:p>","DOI":"10.1017\/s1471068423000285","type":"journal-article","created":{"date-parts":[[2023,8,24]],"date-time":"2023-08-24T08:48:37Z","timestamp":1692866917000},"page":"918-932","update-policy":"https:\/\/doi.org\/10.1017\/policypage","source":"Crossref","is-referenced-by-count":0,"title":["Implementing Backjumping by Means of Exception Handling"],"prefix":"10.1017","volume":"23","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-4700-7272","authenticated-orcid":false,"given":"W\u0141ODZIMIERZ","family":"DRABENT","sequence":"first","affiliation":[]}],"member":"56","published-online":{"date-parts":[[2023,8,24]]},"reference":[{"key":"S1471068423000285_ref2","doi-asserted-by":"publisher","DOI":"10.1017\/S1471068403001893"},{"key":"S1471068423000285_ref9","doi-asserted-by":"crossref","unstructured":"Maher, M. J. 1988. Equivalences of logic programs. In Foundations of Deductive Databases and Logic Programming, Minker, J. , Ed. Kaufmann, Morgan , 627\u2013658.","DOI":"10.1016\/B978-0-934613-40-8.50020-8"},{"key":"S1471068423000285_ref11","doi-asserted-by":"crossref","unstructured":"Tarau, P. and Boyer, M. 1990. Elementary logic programs. In Programming Language Implementation and Logic Programming, PLILP\u201990, Deransart, P. and Maluszynski, J. , Eds. Lecture Notes in Computer Science, vol. 456. Springer, 159\u2013173.","DOI":"10.1007\/BFb0024183"},{"key":"S1471068423000285_ref10","doi-asserted-by":"publisher","DOI":"10.1017\/S1471068420000435"},{"key":"S1471068423000285_ref5","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-61411-8"},{"volume-title":"International Series in Computer Science","year":"1997","author":"Apt","key":"S1471068423000285_ref1"},{"key":"S1471068423000285_ref3","first-page":"194","volume-title":"Implementations of Prolog","author":"Bruynooghe","year":"1984"},{"key":"S1471068423000285_ref4","unstructured":"Byrd, L. 1980. Understanding control flow of Prolog programs. In Logic Programming Workshop, S.-\u00c5. T\u00e4rnlund, Ed."},{"key":"S1471068423000285_ref8","doi-asserted-by":"publisher","DOI":"10.1016\/j.tcs.2012.02.024"},{"key":"S1471068423000285_ref7","doi-asserted-by":"crossref","unstructured":"Drabent, W. and Ma\u0142uszy\u0144ski, J. 1988. Inductive assertion method for logic programs. Theoretical Computer Science 59, 133\u2013155.","DOI":"10.1016\/0304-3975(88)90099-0"},{"key":"S1471068423000285_ref6","doi-asserted-by":"publisher","DOI":"10.1017\/S1471068417000047"}],"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\/S1471068423000285","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,2,27]],"date-time":"2024-02-27T09:38:36Z","timestamp":1709026716000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S1471068423000285\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,7]]},"references-count":11,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2023,7]]}},"alternative-id":["S1471068423000285"],"URL":"https:\/\/doi.org\/10.1017\/s1471068423000285","relation":{},"ISSN":["1471-0684","1475-3081"],"issn-type":[{"type":"print","value":"1471-0684"},{"type":"electronic","value":"1475-3081"}],"subject":[],"published":{"date-parts":[[2023,7]]},"assertion":[{"value":"\u00a9 The Author(s), 2023. Published by Cambridge University Press","name":"copyright","label":"Copyright","group":{"name":"copyright_and_licensing","label":"Copyright and Licensing"}}]}}