CMU Artificial Intelligence Repository
BinProlog: Fast, small, and portable Prolog compiler.
BinProlog replaces the WAM by a more compact continuation passing
logic engine based on a mapping of full Prolog to binary logic
programs. It includes an interface Tcl/Tk.
BinProlog is a fairly complete Prolog implementation featuring both
C-emulated execution and generation of standalone applications by
compilation to C. Some other features are:
- a Tcl/Tk Motif-style visual programming interface,
- dynamic code, intuitionistic and linear implication,
- logical and permanent global variables,
- backtrackable destructive assignment,
- circular term unification,
- extended DCGs (now built in the engine as `invisible grammars'),
- continuation manipulation primitives,
- a garbage-collected hashing based global dictionary for constant-time
sparse arrays and graphs,
- efficient high-order programming builtins,
- C-compatible floating point operations,
- fully C-ified one file executables.
The compiler makes 528 KLIPS on a Sparc 10-40 (101 KLIPS on a NeXT)
and still uses a very small (49K under Solaris 2.1) emulator, making
it among the fastest freely available C-emulated Prologs (3-5 times
faster than C-Prolog, 2-3 times faster than SWI-prolog, 1.5-2 times
faster than (X)SB-prolog and close to C-emulated Sicstus 2.1.).
BinProlog's very small code-size and high performances make it
suitable to be integrated in industrial C-applications that need
the services of an embedded logic programming engine.
Multi-BinProlog 3.00 is a prototype Linda-style parallel extension to
BinProlog for Solaris 2.3 developed by Koen De Bosschere and Paul Tarau.
This version uses Koen's C-parser and C-writer which together speed-up IO
and streams considerably. It works with shared-memory and remote
BinProlog includes many examples, such as a VT100 implementation of
Tetris, a breadth-first meta-interpreter, an implementation of
backpropagation (neural nets), a CHAT parser, and implementations of
knight's tour and N-queens.
Version: 3.00 (12-SEP-94)
Requires: C, TCL 7.3, TK 3.6, addinput-3.6a
Ports: Sparc, DEC Alpha, MIPS (SGI, DEC), 68k (NeXT, Sun3),
R6000 (IBM), HP PA-RISC, Solaris, and 386/486 (Linux or
MsDOS+Windows 3.1 - with DOS-extender go32 ver. 1.10).
Copying: BinProlog 3.00 Copyright (c) 1992-94 Paul Tarau.
Multi-BinProlog 3.00 Copyright (c) 1992-94 Paul Tarau,
Copyright (c) 1993-94 Koen De Bosschere
ISO Prolog parser Copyright (c) 1994 Koen De Bosschere
Use and modification for research and other non-profit
purposes is permitted, provided the copyright notice is
See copying.txt for details.
Use in industrial applications, licensing of C-sources,
porting to other platforms, BinProlog related support and
consulting are available but need a separate agreement.
See pricing.txt, license.src, and license.bin for details.
Updated: Thu Oct 13 19:47:30 1994
CD-ROM: Prime Time Freeware for AI, Issue 1-1
Bug Reports: email@example.com
Author(s): Dr. Paul Tarau or
Dept. of Computer Science
Universite de Moncton
8-Queens, Authors!Tarau, Backpropagation, BinProlog,
Compilers!Prolog, Interpreters!Prolog, Knight's Tour,
Meta-Circular Interpreter!Prolog, MultiBinProlog, N-Queens,
Neural Networks, Parsing, Programming Languages!Prolog,
Prolog!IBM PC, Prolog!Implementations, Prolog!Parsing,
Prolog!UNIX, Tcl/Tk X11 Interface, Tetris
Papers related to the implementation are included in the distribution.
Last Web update on Mon Feb 13 10:34:53 1995