Hostname: page-component-7b7567c8c-tnzcf Total loading time: 0 Render date: 2026-11-15T02:48:21.200Z Has data issue: false hasContentIssue false

The language features and architecture of B-Prolog

Published online by Cambridge University Press:  12 September 2011

NENG-FA ZHOU*
Affiliation:
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)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

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.

Information

Type
Regular Papers
Copyright
Copyright © Cambridge University Press 2011