Tabling as a Library with Delimited Control
Proceedings of the Twenty-Fifth International Joint Conference on Artificial Intelligence. Pages 4145-4148.
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.
@inproceedings{ijcai2016p619,
title = {Tabling as a Library with Delimited Control},
author = {Desouter, Benoit and van Dooren, Marko and Schrijvers, Tom and Vandenbroucke, Alexander},
booktitle = {Proceedings of the Twenty-Fifth International Joint Conference on
Artificial Intelligence, {IJCAI-16}},
publisher = {AAAI Press / International Joint Conferences on Artificial Intelligence},
editor = {Subbarao Kambhampati},
pages = {4145--4148},
year = {2016},
month = {7},
url = {https://ijcai.org/proceedings/2016/619},
}
TY - CPAPER TI - Tabling as a Library with Delimited Control AU - Desouter, Benoit AU - van Dooren, Marko AU - Schrijvers, Tom AU - Vandenbroucke, Alexander T2 - Proceedings of the Twenty-Fifth International Joint Conference on Artificial Intelligence, IJCAI-16 PB - AAAI Press / International Joint Conferences on Artificial Intelligence PY - 2016 SP - 4145 EP - 4148 UR - https://ijcai.org/proceedings/2016/619 ER -Copied
Machine-readable versions of this paper, for tools and AI agents: