XSB


Also found in: Acronyms, Wikipedia.

XSB

(logic programming)
XSB extends the standard functionality of Prolog (being a descendant of PSB- and SB-Prolog) to include implementations of OLDT (tabling) and HiLog terms. OLDT resolution is extremely useful for recursive query computation, allowing programs to terminate correctly in many cases where Prolog does not. HiLog supports a type of higher-order programming in which predicate symbols can be variable or structured. This allows unification to be performed on the predicate symbols themselves in addition to the arguments of the predicates. Of course, Tabling and HiLog can be used together.

Version 1.2

ports: Sun, Solaris, NeXT, Linux, 386 BSD, IRIX, HP-UX

portability: Generally to 32-bit machines.

interpreter, preprocessor(HiLog), documentation

XSB research group / SUNY at Stony Brook

ftp://sbcs.sunysb.edu/pub/XSB/XSB.tar.Z.

(130.245.1.15) E-mail: <xsb-contact@cs.sunysb.edu>.
Mentioned in ?
References in periodicals archive ?
1996], which forms the default scheduling strategy of version 1.7 of XSB.(7) Later sections provide instruction-level details of the implementation of batched evaluation, as well as its extension to programs with negation.
The SLG-WAM of XSB currently implements early completion in the case where the subgoal is ground.
To determine the overhead of tabled negation in XSB for these programs, the first two rows of Table V compare the performance of tabling using (tnot/1) and Prolog-style negation (not/1).
Normalized CPU Times for Different Types of Negation in XSB even congested SLG-not/1 1 1 SLG-tnot/1 1.19 1.23 SLD-not/1 0.72 0.71 These performance numbers indicate a small overhead for the additional functionality of tabled-based SLG negation relative to Ordered Search.
When XSB is used simply as a Prolog system (i.e., no tabling is used), it is reasonably competitive with other Prolog implementations based on a WAM emulator written in C or assembly.
Two examples of this are transitive closure over trees and chains, and Tables VI and VII show the normalized times for the query ?- path(1,X),fail, using XSB. In these tables the rightrecursive form of transitive closure was used for SLD (Figure 32(b)) against its left-recursive version for SLG (Figure 32(a)).
Extending the SLG-WAM to evaluate non stratified programs according to the well-founded semantics has already begun, with version 1.7 of XSB offering an initial implementation of this engine.
As mentioned in the introduction, the tabling engine can efficiently perform mode and type analysis (among many others), and the results of such analysis can be fed back into the XSB compiler.
Normalized CPU Times for Executing Tabling Benchmarks Using XSB TC-chain TC-cycle TC-tree same gen.
(8) This step is slightly optimized in XSB version 1.7 by returning the first answer, if any, directly by the tabletry(single) instruction.
The Will-Burt Company William-Thomas Consulting Inc XSB Inc.