{"type":"ScholarlyArticle","title":"Tabling as a Library with Delimited Control","authors":[{"name":"Benoit Desouter","slug":"benoit-desouter","given":"Benoit","family":"Desouter","affiliation":""},{"name":"Marko van Dooren","slug":"marko-van-dooren","given":"Marko","family":"van Dooren","affiliation":""},{"name":"Tom Schrijvers","slug":"tom-schrijvers","given":"Tom","family":"Schrijvers","affiliation":""},{"name":"Alexander Vandenbroucke","slug":"alexander-vandenbroucke","given":"Alexander","family":"Vandenbroucke","affiliation":""}],"abstract":"The logic programming language Prolog uses a resource-efficient SLD resolution strategy for query answering. Yet, its propensity for nontermination seriously detracts from the language's declarative nature. This problem is remedied by tabling, a modified execution strategy that allows a larger class of programs to terminate. Unfortunately, few Prolog systems provide tabling, because the documented implementation techniques are complex, low-level and require a prohibitive engineering effort. To enable more widespread adoption, this paper presents a novel implementation of tabling for Prolog that is both high-level and compact. It comes in the form of a Prolog library that weighs in at under 600 lines of code, is based on delimited control and delivers reasonable performance.","doi":null,"url":"https://ijcai.org/proceedings/2016/619","pdf":"https://ijcai.org/proceedings/2016/0619.pdf","markdown":"https://ijcai.org/proceedings/2016/619.md","bibtex":"https://ijcai.org/proceedings/2016/bibtex/619","volume":{"slug":"2016","title":"Proceedings of the Twenty-Fifth International Joint Conference on Artificial Intelligence","short_title":"IJCAI 2016","url":"https://ijcai.org/proceedings/2016/","year":2016,"location":"New York, NY, USA","dates":"9–15 July 2016","editors":"Subbarao Kambhampati","isbn":"978-1-57735-770-4; 978-1-57735-771-1","publisher":"AAAI Press / International Joint Conferences on Artificial Intelligence","doi_prefix":""},"section":null,"track":"","number":619,"pages":{"first":4145,"last":4148},"keywords":[],"videos":[],"references":[],"license_note":"Copyright International Joint Conferences on Artificial Intelligence."}