The language features and architecture of b-prolog

  • Authors:
  • Neng-fa Zhou

  • Affiliations:
  • Department of computer and information science, brooklyn college and graduate center, the city university of new york, new york, usa (e-mail: zhou@sci.brooklyn.cuny.edu)

  • Venue:
  • Theory and Practice of Logic Programming - Prolog Systems
  • Year:
  • 2012

Quantified Score

Hi-index 0.01

Visualization

Abstract

B-Prolog is a high-performance implementation of the standard Prolog language with several extensions including matching clauses, action rules for event handling, finite-domain constraint solving, arrays and hash tables, declarative loop constructs, and tabling. The B-Prolog system is based on the Tree-Oriented Abstract Machine (TOAM) architecture which differs from the Warren Abstract Machine (WAM) mainly in that (1) arguments are passed old fashionedly through the stack, (2) only one frame is used for each predicate call, and (3) instructions are provided for encoding matching trees. The most recent architecture, called TOAM Jr., departs further from the WAM in that it employs no registers for arguments or temporary variables, and provides variable-size instructions for encoding predicate calls. This paper gives an overview of the language features and a detailed description of the TOAM Jr. architecture, including architectural support for action rules and tabling.