Tabled logic programming: Difference between revisions

Content deleted Content added
Stub sorting
bolded title
Line 1:
{{redirect|Tabling|the parliamentary procedure|Table (parliamentary procedure)}}
'''Tabling''' is a technique first developed for natural language processing, where it was called [[Earley parsing]]. It consists of storing in a table (a.k.a. chart in the context of parsing) partial successful analyses that might come in handy for future reuse.
 
Tabling consists of maintaining a table of goals that are called during execution, along with their answers, and then using the answers directly when the same goal is subsequently called. Tabling gives a guarantee of total correctness for any (pure) Prolog program without function symbols.<ref>{{Cite journal |last=Körner |first=Philipp |last2=Leuschel |first2=Michael |last3=Barbosa |first3=Joao |last4=Costa |first4=Vitor Santos |last5=Dahl |first5=Veronica |last6=Hermengildo |first6=Manuel V. |last7=Morales |first7=Jose F. |last8=Wielemaker |first8=Jan |last9=Diaz |first9=Daniel |last10=Abreu |first10=Salvador |last11=Ciatto |first11=Giovanni |date=2022-05-17 |title=Fifty Years of Prolog and Beyond |url=http://dx.doi.org/10.1017/s1471068422000102 |journal=Theory and Practice of Logic Programming |volume=22 |issue=6 |pages=776–858 |doi=10.1017/s1471068422000102 |issn=1471-0684}}</ref>