Also found in: Dictionary, Thesaurus, Acronyms, Wikipedia.


(often US), prolog
a. the prefatory lines introducing a play or speech
b. the actor speaking these lines
2. in early opera
a. an introductory scene in which a narrator summarizes the main action of the work
b. a brief independent play preceding the opera, esp one in honour of a patron
Collins Discovery Encyclopedia, 1st edition © HarperCollins Publishers 2005


(computer science)
A programming language that is for artificial intelligence applications, and uses problem descriptions to reach solutions, based on precise rules.
McGraw-Hill Dictionary of Scientific & Technical Terms, 6E, Copyright © 2003 by The McGraw-Hill Companies, Inc.


Programming in Logic or (French) Programmation en Logique. The first of the huge family of logic programming languages.

Prolog was invented by Alain Colmerauer and Phillipe Roussel at the University of Aix-Marseille in 1971. It was first implemented 1972 in ALGOL-W. It was designed originally for natural-language processing but has become one of the most widely used languages for artificial intelligence.

It is based on LUSH (or SLD) resolution theorem proving and unification. The first versions had no user-defined functions and no control structure other than the built-in depth-first search with backtracking. Early collaboration between Marseille and Robert Kowalski at University of Edinburgh continued until about 1975.

Early implementations included C-Prolog, ESLPDPRO, Frolic, LM-Prolog, Open Prolog, SB-Prolog, UPMAIL Tricia Prolog. In 1998, the most common Prologs in use are Quintus Prolog, SICSTUS Prolog, LPA Prolog, SWI Prolog, AMZI Prolog, SNI Prolog.

ISO draft standard at Darmstadt, Germany. or UGA, USA.

See also negation by failure, Kamin's interpreters, Paradigms of AI Programming, Aditi.

A Prolog interpreter in Scheme.

A Prolog package from the University of Calgary features delayed goals and interval arithmetic. It requires Scheme with continuations.

["Programming in Prolog", W.F. Clocksin & C.S. Mellish, Springer, 1985].
This article is provided by FOLDOC - Free Online Dictionary of Computing (


(PROgramming in LOGic) A programming language used for developing AI applications (natural language translation, expert systems, abstract problem solving, etc.). Developed in France in 1973, "Programmation en Logique" is used throughout Europe and Japan and has gained popularity in the U.S.

Similar to LISP, it deals with symbolic representations of objects. The following example, written in University of Edinburgh Prolog, converts Fahrenheit to Celsius:

  convert:- write('Enter Fahrenheit'),
   write('Celsius is '),
   Cent is (5 * (Fahr - 32)) / 9,
Copyright © 1981-2019 by The Computer Language Company Inc. All Rights reserved. THIS DEFINITION IS FOR PERSONAL USE ONLY. All other reproduction is strictly prohibited without permission from the publisher.
References in periodicals archive ?
For additional information about the Chinese localized version of Prolog software offered by ProjectAIMS, visit their website at
One advantage to separating my logic is that I can troubleshoot it before I even write the Perl code, loading the rules into a Prolog interpreter or IDE such as XGP (for Macintosh users) and testing them.
Smith said if anyone knows of an investment opportunity that Prolog should evaluate, or to learn more about Prolog's investment criteria and philosophy, contact him at (501) 954-9402 or by e-mail at
See how Prolog LT improves your bottom line and increases your project control:
Concurrent Prolog is not efficient in realizing the atomic unification that is the origin of its expressiveness.
Any information that is not explicitly written into the database is considered by Prolog to be false.
* (Concurrent Prolog) The core part of KL1 should be based on Concurrent Prolog, but should support search problems and metaprogramming as well.
The program in Figure I is written in Arity Prolog version 5.0 (Arity Corp., Concord, Mass.), but can be easily modified to run with any version of Prolog.
Shapiro and Takeuchi [21] had written a paper about how Concurrent Prolog could be used as an actor or concurrent object language.
Prolog is particularly suitable when a problem is expressed in a form of logic (e.g., if p and q then r), or a problem is goal-oriented (e.g., to satisfy r, satisfy p and q).
Although non-determinism, the elimination of the occur test, and testing for satisfiability of systems of equations were already present in Absys I, the SL theory of Kowalski and Kuehner [32], and the illuminating set of examples of Prolog usage given by Colmerauer and his group were to appear only a few years later.
It is now becoming recognized that Prolog is a good thing for database applications, problem solving, expert systems,natural-language parsing, and compiler writing.