B-Prolog is a compact and complete CLP system that runs Prolog and CLP(FD) programs. An emulator-based system, B-Prolog has a performance comparable with SICStus-Prolog. Since release in 1994, it has been greatly improved in performance, functionality, robustness, and portability. It has successfully passed a test running 150,000 lines of programs and has been used to run several large applications including commercial ones. View messages from B-Prolog's users. Send your messages to bprolog@hotmail.com
Features
- In addition to Edinburgh-style programs, B-Prolog accepts canonical-form programs that can be compiled into more compact and faster code than standard Prolog programs.
- B-Prolog includes an interpreter and provides an interactive interface through which users can consult, list, compile, load, debug and run programs. The command editor facilitates reuse old commands.
- B-Prolog provides a bi-directional interface with C and Java. This interface makes it possible for a Prolog application to use resources in C and Java such as Graphics and sockets, and also makes it possible for a Prolog program to be embadded in a C and Java applications.
- B-Prolog supports most of the built-ins in ISO Prolog.
- B-Prolog supports the delaying (co-routining) mechanism, which can be used to implement concurrency, test-and-generate search algorithms, and most importantly constraint propagation algorithms.
- B-Prolog has an efficient constraint compiler for constraints over finite-domains and Booleans.
- B-Prolog supports the tabling mechanism, which has proven effective for applications including parsing, problem solving, theorem proving, and deductive databases.
Platforms
- Testing confirms that B-Prolog works on Windows PCs and unix workstations including SPARC, HP, AIX, Sony News, FreeBSD, and Linux PC.
I maintain and improve B-Prolog using weekends and holidays. I welcome support from the users. I need grants to purchase relased time of teaching and hire students. Thank you! Neng-Fa Zhou
|
Please read the copyright notice first and understand that any commercial use of B-Prolog requires purchase a license from the copyright owner. Please also read JIPL's copyright notice if you want to use the Java interface.
The packages for Windows, SunOS, and Solaris contain both the executables and the C sources which are included because some users might want to add new built-ins in C into the system and recompile the emulator. The Java interface works only on Windows and Solaris machines. To extract files from "bp40_win.tar.gz", you need WinZip .
The recommended directory is "C:\" for Windows and "$HOME/" for unix. The extracted files will be stored in a directory, called "BProlog", that has to following structure:
bp or bp.bat: The shell file to start B-Prolog
bp.out: Machine independent byte code
bp.dll or libbp.so: Dynamic link library for Windows or Solaris
readme.html: This html file
install.html: Installation instructions
copyright.html: Copy right notice
faq.html: Frequently asked questions
Emulator/bprolog.exe: Machine depandent executable code
Emulator/: All C sources and machine depandent executable code
Demo/: Examples that use CLP(FD) and the Java interface
Acknolwdgement
Kenichi Katamine (katamine@ ai.kyutech.ac.jp) helped me port the
system to MS-DOS (Windows) and raised my concern in Chris Thewalt's
getline program which is used as the command reader in B-Prolog.
Yi-Dong Shen (ydshen@cs.ualberta.ca) motivated me to implement tabling
in B-Prolog and shared the key idea with me. Many users helped me port
the software to different platforms: Naoyuki Nide
(nide@ics.nara-wu.ac.jp) provided information about porting to HP, Paul Eggert(eggert@twinsun.com) to AIX, Shuhei Murakoshi (shuhei@sit.shimz.co.jp) to FreeBSD, and Osamu Takata (takata@kis.tylabs.co.jp) to Linux. I would like to
thank them and all other people who have sent me useful bug reports
and comments. Without the feedbacks from the users, we would not be
able to see a nice B-Prolog system like this.
This distribution includes the following public domain software:
read.pl by D.H.D. Warren and Richard O'Keefe; token.c,
setof.pl and dcg.pl by Richard O'Keefe. The loader
loader.c is based on the one used in SB-Prolog. The Java interface was based on JIPL developed by Nobukuni Kino. I would also like to thank all the authors for making their programs accessible to the
public. The copyrights of these programs are owned by their authors as
written in the sources.