An Abstract Machine for Tabled Execution of Fixed-Order Stratified Logic Programs

Konstantinos Sagonas, Terrance Swift

Research output: Contribution to journalArticlepeer-review

77 Scopus citations


SLG resolution uses tabling to evaluate nonfloundering normal logic programs according to the well-founded semantics. The SLG-WAM, which forms the engine of the XSB system, can compute in-memory recursive queries an order of magnitude faster than current deductive databases. At the same time, the SLG-WAM tightly integrates Prolog code with tabled SLG code, and executes Prolog code with minimal overhead compared to the WAM. As a result, the SLG-WAM brings to logic programming important termination and complexity properties of deductive databases. This article describes the architecture of the SLG-WAM for a powerful class of programs, the class of fixed-order dynamically stratified programs. We offer a detailed description of the algorithms, data structures, and instructions that the SLG-WAM adds to the WAM, and a performance analysis of engine overhead due to the extensions.

Original languageEnglish (US)
Pages (from-to)586-634
Number of pages49
JournalACM Transactions on Programming Languages and Systems
Issue number3
StatePublished - May 1998
Externally publishedYes


  • D.1.2 [Programming Techniques]: Automatic Programming
  • D.1.6 [Programming Techniques]: Logic Programming
  • D.3.4 [Programming Languages]: Processors - compilers; interpreters; optimization

ASJC Scopus subject areas

  • Software


Dive into the research topics of 'An Abstract Machine for Tabled Execution of Fixed-Order Stratified Logic Programs'. Together they form a unique fingerprint.

Cite this