next up previous contents index
Next: Contents Up: manual Previous: manual   Contents   Index

Preface

Prolog and CLP(FD) (Constraint Logic Programming over Finite Domains) have proved appealing for numerous applications, including computer-aided design and verification, database, software engineering, optimization, graphical user interface, and artificial intelligence. These applications, on the one hand, are possible only because of the availability of quite efficient Prolog and CLP(FD) systems, and on the other hand, require more effort to develop ever faster systems. During the last decade, I have concentrated my energy on designing and implementing efficient abstract machines and compilation algorithms for Prolog and constraints. B-Prolog is the main product born from this endeavor.

B-Prolog is a system for running Prolog and CLP(FD) programs. Like most other systems, it includes an interpreter and provides an interactive interface through which the user can consult, list, compile, load, debug and run programs. It not only runs ISO Prolog programs, but also supports delaying (or corouting) and constraint solving over finite domains and Booleans. It also provides interfaces through which external languages (currently C and Java) and Prolog can call each other. Some functionalities including module systems and garbage collection are not available now and are to be implemented in the future.

I have confirmed that the system works on SPARC running SunOS and Solaris, HP running HP-UX, and 486 running Linux and MSDOS (Windows). There are users who have ported the system to NEXT, AMIGA, etc., but no one has ported the system to DEC Alpha.

Since the software was released in March 1994, it has been greatly improved in performance, functionality, versatility, and portability. 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) for HP, Paul Eggert(eggert@twinsun.com) for AIX, Shuhei Murakoshi (shuhei@sit.shimz.co.jp) for FreeBSD, and Osamu Takata (takata@kis.tylabs.co.jp) for 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. 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.


next up previous contents index
Next: Contents Up: manual Previous: manual   Contents   Index
Neng-Fa Zhou
1999-11-24