"Tabling" redirects here. For the parliamentary procedure, see 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.[1]
Tabling can be extended in various directions. It can support recursive predicates through SLG resolution or linear tabling. In a multi-threaded Prolog system tabling results could be kept private to a thread or shared among all threads. And in incremental tabling, tabling might react to changes.[2][3]
^Körner, Philipp; Leuschel, Michael; Barbosa, Joao; Costa, Vitor Santos; Dahl, Veronica; Hermengildo, Manuel V.; Morales, Jose F.; Wielemaker, Jan; Diaz, Daniel; Abreu, Salvador; Ciatto, Giovanni (2022-05-17). "Fifty Years of Prolog and Beyond". Theory and Practice of Logic Programming. 22 (6): 776–858. doi:10.1017/s1471068422000102. hdl:10174/33387. ISSN 1471-0684.
^Swift, T. (1999). "Tabling for non‐monotonic programming". Annals of Mathematics and Artificial Intelligence. 25 (3/4): 201–240. doi:10.1023/A:1018990308362. S2CID 16695800.
^Zhou, Neng-Fa; Sato, Taisuke (2003). "Efficient Fixpoint Computation in Linear Tabling" (PDF). Proceedings of the 5th ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming: 275–283.
and 25 Related for: Tabled logic programming information
threads. And in incremental tabling, tabling might react to changes. The adaptation of tabling into a logicprogramming proof procedure, under the name of...
Logicprogramming is a programming, database and knowledge representation paradigm based on formal logic. A logicprogram is a set of sentences in logical...
A programmablelogic device (PLD) is an electronic component used to build reconfigurable digital circuits. Unlike digital logic constructed using discrete...
logic, a formal logic, and unlike many other programming languages, Prolog is intended primarily as a declarative programming language: the program is...
Ladder logic has evolved into a programming language that represents a program by a graphical diagram based on the circuit diagrams of relay logic hardware...
(2020). Programming in Tabled Prolog (PDF) (Draft ed.). Swift, Terrance; Warren, David S. (2012). "XSB: Extending Prolog with TabledLogicProgramming". Theory...
Procedural programming is a programming paradigm, classified as imperative programming, that involves implementing the behavior of a computer program as procedures...
Logic is the study of correct reasoning. It includes both formal and informal logic. Formal logic is the study of deductively valid inferences or logical...
A logic gate is a device that performs a Boolean function, a logical operation performed on one or more binary inputs that produces a single binary output...
mathematical logic and logicprogramming, a Horn clause is a logical formula of a particular rule-like form that gives it useful properties for use in logic programming...
λProlog (a logicprogramming language featuring polymorphic typing, modular programming, and higher-order programming) Oz, and Mozart Programming System cross-platform...
1972, was the first logicprogramming language, communicating with a computer using formal logic notation. With logicprogramming, the programmer specifies...
branch of logic. It is also called propositional logic, statement logic, sentential calculus, sentential logic, or sometimes zeroth-order logic. It deals...
of different shops. Category:Logic puzzles, a list of different logic puzzles List of puzzle video games Logicprogramming Mechanical puzzle Recreational...
In automata theory, combinational logic (also referred to as time-independent logic) is a type of digital logic that is implemented by Boolean circuits...
combinatory logic has been used to model some non-strict functional programming languages and hardware. The purest form of this view is the programming language...
situations. Probabilistic logic extends traditional logic truth tables with probabilistic expressions. A difficulty of probabilistic logics is their tendency...
Datalog is a declarative logicprogramming language. While it is syntactically a subset of Prolog, Datalog generally uses a bottom-up rather than top-down...
computing, a visual programming language (visual programming system, VPL, or, VPS), also known as diagrammatic programming, graphical programming or block coding...
formal logic operations through the use of truth tables. Early logical machines were mechanical devices that performed basic operations in Boolean logic. The...
Probabilistic logicprogramming is a programming paradigm that extends logicprogramming with probabilities. Most approaches to probabilistic logicprogramming are...
{\displaystyle \cdot } ; and in programming languages, &, &&, or and. In Jan Łukasiewicz's prefix notation for logic, the operator is K {\displaystyle...
Mathematical logic is the study of formal logic within mathematics. Major subareas include model theory, proof theory, set theory, and recursion theory...
versions of decision table based programming tools and compilers LogicGem Software For Windows decision table processor for perfecting logic and business rules...
Although the logic has also been studied for its own sake, more broadly, ideas from linear logic have been influential in fields such as programming languages...