Advanced search
1 file | 197.31 KB
Author
Organization
Abstract
The logic programming language Prolog uses a resource-efficient SLD resolution strategy for query answering. Yet, its propensity for non- termination 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.
Keywords
tabulation, logic programming, delimited continuation, tabling, Prolog

Downloads

  • (...).pdf
    • full text
    • |
    • UGent only
    • |
    • PDF
    • |
    • 197.31 KB

Citation

Please use this url to cite or link to this publication:

Chicago
Desouter, Benoit, Marko van Dooren, Tom Schrijvers, and Alexander Vandenbroucke. 2016. “Tabling as a Library with Delimited Control.” In Artificial Intelligence, 25th International Joint Conference, Proceedings. AAAI Press.
APA
Desouter, B., van Dooren, M., Schrijvers, T., & Vandenbroucke, A. (2016). Tabling as a Library with Delimited Control. Artificial Intelligence, 25th International joint conference, Proceedings. Presented at the 25th International joint conference on Artificial Intelligence (IJCAI-16), AAAI Press.
Vancouver
1.
Desouter B, van Dooren M, Schrijvers T, Vandenbroucke A. Tabling as a Library with Delimited Control. Artificial Intelligence, 25th International joint conference, Proceedings. AAAI Press; 2016.
MLA
Desouter, Benoit, Marko van Dooren, Tom Schrijvers, et al. “Tabling as a Library with Delimited Control.” Artificial Intelligence, 25th International Joint Conference, Proceedings. AAAI Press, 2016. Print.
@inproceedings{7176378,
  abstract     = {The logic programming language Prolog uses a resource-efficient SLD resolution strategy for query answering. Yet, its propensity for non- termination seriously detracts from the language{\textquoteright}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.},
  author       = {Desouter, Benoit and van Dooren, Marko and Schrijvers, Tom and Vandenbroucke, Alexander},
  booktitle    = {Artificial Intelligence, 25th International joint conference, Proceedings},
  language     = {eng},
  location     = {New York, NY, USA},
  pages        = {5},
  publisher    = {AAAI Press},
  title        = {Tabling as a Library with Delimited Control},
  year         = {2016},
}