Beta-Prolog(ID:5028/bet004)
- Country: jp
- Began: 1992
- Type:Horn clause
- Sammet:SLP
Prolog enhanced to directly manipulate Boolean tables
Neng-Fa Zhou, CSSE, Kyushu Institute of Technology
Related languages
Prolog |
=> |
Beta-Prolog | |
Extension of |
References:
Neng-Fa Zhou, Isao Nagasawa "Implementing Graph Algorithms in BeTa-Prolog" IWAR 1992 pp23-32 view details
Neng-Fa Zhou "Beta-Prolog: An Extended Prolog with Boolean Tables for Combinatorial Searching" ICTAI 1993 ''312-319 view details
Neng-Fa Zhou "Global Optimizations in a Prolog Compiler for the TOAM" J. Logic Programming, Vol.15, pp.265-294, 1993 view details
Neng-Fa Zhou "On the Scheme of Passing Arguments in Stack Frames for Prolog, ICLP'94, pp.159-165, 1994 view details
Neng-Fa Zhou, Isao Nagasawa
"An Efficient Finite-Domain Constraint Solver in Beta-Prolog" JJSAI 9(2) 1994 view details
Abstract: Beta-Prolog is an extended Prolog that provides the following two new facilities: (1) the definition and manipulation of Boolean tables, and (2) constant time update of arguments of compound terms. Boolean table is a natural and efficient data structure for representing graphs, situations in planning and domains in constraint satisfaction problems (CSPs). In this paper, we focus on how to solve CSPs in Beta-Prolog. We describe a finite-domain constraint solver on top of Beta-Prolog. For a CSP, domains of variables are represented as a Boolean table, and domain variables and constraints are represented as compound terms. Because all the primitives on Boolean tables and compound terms can be performed in constant time, the constraint solver is quite efficient. For the benchmark programs, its performance is comparable with that of the CHIP system.
External link: online copy
Resources - FTP at CMU repository
Beta-Prolog is a fast and portable Prolog implementation. It consists of an emulator of the NTOAM (matching Tree Oriented Abstract Machine) written in C, a compiler written in Prolog that translates Prolog programs into NTOAM instructions, and a library of built-in predicates.
Beta-Prolog has the following features:
1. It is one of the fastest emulator-based Prolog implementations. The NTOAM inherits many good features of the WAM, but differs from WAM-based systems in that predicate arguments are passed directly in stack frames and only one frame is used for each predicate. For many programs written for WAM-based systems, Beta-Prolog is faster than emulator-based SICStus Prolog 2.1. Further speed-ups can be achieved if these programs are rewritten into a style suitable for Beta-Prolog by taking the NTOAM's argument passing scheme into account.
2. Besides Edinburgh style clauses, Beta-Prolog also accepts matching clauses in which input and output unifications are separated, and determinism is denoted explicitly. The compiler is able to translate predicates in this form into matching trees and index them using all input arguments. The compiler can compile quite large programs in a short time because it consists of only matching clauses.
3. It provides an interactive interface through which the programmers can consult, compile, load, debug and run programs.
4. It provides an interface through which C functions can be called from Prolog.
5. It provides a special data structure called state tables that can be used to represent graphs, simple and complex domains in constraint satisfaction problems, and situations in various combinatorial search problems.
6. It includes a finite-domain constraint solver with which constraint satisfaction problems can be specified declaratively.external link
|