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. |
Year | DOI | Venue |
---|---|---|
2016 | 10.1017/S1471068415000137 | international joint conference on artificial intelligence |
Keywords | DocType | Volume |
logic programming,prolog,tabulation,delimited continuations | Conference | abs/1507.08087 |
Issue | ISSN | ISBN |
4-5 | 1471-0684 | 978-1-57735-770-4 |
Citations | PageRank | References |
0 | 0.34 | 13 |
Authors | ||
3 |
Name | Order | Citations | PageRank |
---|---|---|---|
Benoit Desouter | 1 | 8 | 2.69 |
Marko van Dooren | 2 | 21 | 4.40 |
tom schrijvers | 3 | 652 | 63.35 |