XSB is the name of a dialect of the
Prolog
Prolog is a logic programming language associated with artificial intelligence and computational linguistics.
Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is intended primarily ...
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
and its implementation developed at
Stony Brook University
Stony Brook University (SBU), officially the State University of New York at Stony Brook, is a public research university in Stony Brook, New York. Along with the University at Buffalo, it is one of the State University of New York system's ...
in collaboration with the
Katholieke Universiteit Leuven
KU Leuven (or Katholieke Universiteit Leuven) is a Catholic research university in the city of Leuven, Belgium. It conducts teaching, research, and services in computer science, engineering, natural sciences, theology, humanities, medicine, l ...
, the
New University of Lisbon
NOVA University Lisbon ( pt, Universidade NOVA de Lisboa, ), or just NOVA, is a Portuguese public university whose rectorate is located in Campolide, Lisbon. Founded in 1973, it is the newest of the public universities in the Portuguese capital ...
,
Uppsala University
Uppsala University ( sv, Uppsala universitet) is a public university, public research university in Uppsala, Sweden. Founded in 1477, it is the List of universities in Sweden, oldest university in Sweden and the Nordic countries still in opera ...
and
software vendor XSB, Inc.
XSB extends Prolog with
tabled resolution
Resolution(s) may refer to:
Common meanings
* Resolution (debate), the statement which is debated in policy debate
* Resolution (law), a written motion adopted by a deliberative body
* New Year's resolution, a commitment that an individual mak ...
and
HiLog HiLog is a programming logic with higher-order syntax, which allows arbitrary terms to appear in predicate and function positions. However, the model theory of HiLog is first-order. Although syntactically HiLog strictly extends first order logic, Hi ...
(a standard extension of Prolog permitting limited
higher-order logic programming).
The
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
XSB implementation includes an
interface
Interface or interfacing may refer to:
Academic journals
* ''Interface'' (journal), by the Electrochemical Society
* ''Interface, Journal of Applied Linguistics'', now merged with ''ITL International Journal of Applied Linguistics''
* '' Inte ...
to the
Java programming language
Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers ''write once, run anywh ...
.
History
XSB was originally developed at Stony Brook University by David S. Warren, Terrance Swift, and Kostis Sagonas. It was based on the SB-Prolog language that was also developed at Stony Brook University in 1986. It is a
logic programming language
Logic programming is a programming paradigm which is largely based on formal logic. Any program written in a logic programming language is a set of sentences in logical form, expressing facts and rules about some problem domain. Major logic prog ...
.
Syntax
XSB supports several standard
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
data types
In computer science and computer programming, a data type (or simply type) is a set of possible values and a set of allowed operations on it. A data type tells the compiler or interpreter how the programmer intends to use the data. Most progra ...
such as
Integers
An integer is the number zero (), a positive natural number (, , , etc.) or a negative integer with a minus sign (−1, −2, −3, etc.). The negative numbers are the additive inverses of the corresponding positive numbers. In the language o ...
,
Floating Point
In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can be ...
numbers, and
Atoms
Every atom is composed of a nucleus and one or more electrons bound to the nucleus. The nucleus is made of one or more protons and a number of neutrons. Only the most common variety of hydrogen has no neutrons.
Every solid, liquid, gas, an ...
.
Integers
An integer is the number zero (), a positive natural number (, , , etc.) or a negative integer with a minus sign (−1, −2, −3, etc.). The negative numbers are the additive inverses of the corresponding positive numbers. In the language o ...
in XSB can be interpreted in multiple bases. By default integers are interpreted in
base 10
The decimal numeral system (also called the base-ten positional numeral system and denary or decanary) is the standard system for denoting integer and non-integer numbers. It is the extension to non-integer numbers of the Hindu–Arabic numeral ...
but can be interpreted in a range of
bases from
2 to
36.
Atoms are similar to
Strings
String or strings may refer to:
*String (structure), a long flexible structure made from threads twisted together, which is used to tie, bind, or hang other objects
Arts, entertainment, and media Films
* ''Strings'' (1991 film), a Canadian anim ...
. They are a sequence of characters.
External links
XSBProgramming in Tabled Prolog draft of a book about XSB programming by
David S. Warren of Stony Brook University
The XSB System Programmer's Manualby
Terrance Swift, David S. Warren, and others
Information on Stony Brook Prolog
References
# T. Swift and D.S. Warren (2011)
''XSB: Extending the Power of Prolog using Tabling'' Theory and Practice of Logic Programming (TPLP), Cambridge University Press, 2011.
# K. Sagonas and T. Swift and D.S. Warren (1994)
''XSB as an Efficient Deductive Database Engine'' Proceedings of the ACM SIGMOD International Conference on the Management of Data, 1994.
# T. Swift and D.S. Warren (1995)
''An abstract machine for SLG resolution: Definite programs'' Proceedings of the Symposium on Logic Programming, 1995.
Logic programming languages
{{Compu-lang-stub