Newsgroups: comp.os.linux.announce
From: tswift@sbcs.sunysb.edu (Terrance Swift)
Subject: XSB Prolog for Linux
Message-ID: <1993Jun15.133714.5526@dg-rtp.dg.com>
Approved: linux-announce@tc.cornell.edu (Matt Welsh)
Date: Tue, 15 Jun 93 13:37:14 GMT

The XSB Logic Programming System.

We are happy to announce the Linux port of XSB, a Prolog-based Logic
Programming System.  XSB is a descendant of SB-Prolog.

Besides providing all the functionalities of a Prolog system, 
XSB includes an optimizing compiler, C interface, a module system, 
list processing libraries, and dynamic loading.  Furthermore, it
extends Prolog by including implementations of OLDT (tabling) and 
HiLog terms.
 
The XSB distribution includes all source code and a user's manual.
The system can be compiled using the GNU C compiler, and currently
has been tested on 

	--  SUN-3 and SUN-4 workstations
	--  NeXT machines
	--  386 and 486 PCs under Linux and 386 BSD.  

The current release is version 1.1.  

In the following we briefly describe new features of XSB that are not
provided by any other Prolog system), and finally we give instructions
on how to ftp XSB.

OLDT resolution is useful for recursive query computation, allowing
programs to terminate correctly in many cases where Prolog does not.
Users interested in Parsing, Program Analysis, and memory-resident
Deductive Database applications may benefit from XSB.

XSB's OLDT implementation:

    -- Is incorporated at the emulator level for maximal efficiency.
	   The speed improvement over meta-interpreters written by
	   the XSB group is 2-3 orders of magnitude, with considerable
	   improvements in space as well.
    -- Evaluates programs with (left-to-right modularly) stratified 
	   negation and aggregation.
    -- Allows for declaration of tabled predicates either
	   automatically by the system or manually by the user.
    -- Provides standard tabling predicates which can be used to 
	   program a number of applications like meta-interpreters for
	   the well-founded semantics (provided as an example program).
    -- Allows full Prolog functionailty in tabled code, including 
	   cuts (subject to weak semantic restructions), meta-logical 
	   predicates, second-order predicates, etc.

This release provides an advanced Beta version of tabling.

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.

XSB's HiLog implementation:
    -- Includes a fully integrated HiLog preprocessor.   HiLog terms can
		be used anywhere in XSB, including the interpreter level.
    -- Provides a number of meta-logical standard predicates for 
		HiLog terms.

Compiler optimizations for HiLog terms are currently under development.


How To Obtain XSB 

     1)  Issue FTP command to connect to our ftp server

                ftp sbcs.sunysb.edu or ftp 130.245.1.15

        When asked for Name, respond with "anonymous".
        When asked for Password, respond with your e-mail address.

     2) Issue the following change directory command to where the XSB system is

                cd pub/XSB

     3) Change transfer mode to binary

                binary

     4) Now retrieve the XSB system

                get XSB.tar.Z

     5) Exit the ftp program

                quit

     6) Now uncompress and untar the files

                uncompress -c XSB.tar.Z | tar xvf -

        Note that this command uncompresses the files into the current
        working directory, and creates a directory named XSB.

     7) From here on read the README file (in directory XSB) that among
	other things describes how to install the XSB system.

XSB will also be available through Gopher as of July 1.


Send submissions for comp.os.linux.announce to: linux-announce@tc.cornell.edu
