|
Prolog is a logic programming language based on first-order logic and horn clauses. Prolog is a back-chaining system, that is, it starts with a desired result and attempts to derive a path to that result using truth rules it has been given.
Prolog is a mature and complete language with its own ISO standard. There exist quality implementations both commercial and free. As a self-contained programming language, ISO Prolog necessarily contains functionality in all the usual places necessary for general-purpose for a computer languages such as reading and printing, file manipulation, and operating system interface. It isn't the purpose of Allegro Prolog to compete with full Prolog implementations -- rather, it intends only to provide Lisp programs with the logic inference engine of Prolog, efficiently implemented and tightly integrated with Lisp computation. It includes a number of the usual Prolog operators, but not those concerned with capabilities such as I/O, system interface, or filesystem operations. Lisp programmers using Prolog for its inferencing capabilities would probably prefer to keep these other system areas in Lisp code. This makes the Prolog system smaller and easier for Lisp programmers to learn.
There are two equivalent syntaxes traditionally used for expressing Prolog code. Edinburgh syntax, the more common of the two, is similar to C syntax, while Lisp sexpr syntax is more-often used by systems implemented in and interfacing with Lisp. Allegro Prolog uses sexpr syntax.
There is more info and additional links on the Franz Inc. Tech Corner article about Allegro Prolog.
references:
Anyone who wants to play with a standalone Prolog implementation is encouraged to check out SWI Prolog. It is an excellent, mature, open-souce Prolog implementation. The web site also has numerous links to other Prolog resources.
Allegro Prolog is not in competition with standalone Prologs. Allegro Prolog exists to make the Prolog inference engine and standard predefined functors -- the core of the Prolog language model -- available from a Common Lisp program.
books:
Paradigms of Artificial Intelligence Programming by Peter Norvig. Allegro Prolog is an extended, optimized version of the original Prolog implementation developed by Norvig in this volume. The development and explanation are excellent for anyone who wants both to understand how to use Prolog and what the Prolog engine is doing inside.
Programming in Prolog by W.F. Clocksyn, C.S. Mellish. "Clocksin and Mellish" through its several versions has been to Prolog what "K&R" has been to C. It is the standard Prolog tutorial and reference.
|