Logic programming

This is an old revision of this page, as edited by Glenn6502 (talk | contribs) at 17:23, 24 April 2004. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.


Logical programming (and the closely related constraint programming) is a programming paradigm in which a set of attributes that a solution should have are specified rather than set of steps to obtain such a solution. A widely used logical programming language is Prolog. Another, more commercial language is Mercury.

Schematically, the process is facts + rules = results. For a different approach, see Inductive logic programming.

The point of logical programming is to bring the style of formal logic to computer programming. Mathematicians and philosophers find logic a successful tool for developing bodies of theory. Many problems are naturally expressed as a theory. To say a problem needs solving is often equivalent to asking if a new hypothesis is consistent with an existing theory. Logic provides a way to prove whether the question is true or false. The process of constructing a proof is well-known, so logic is thought to be a reliable way to answer questions. Logical programming systems automate this process. Artificial Intelligence was an important influence on the development of logical programming.

The monkey and banana problem is a famous problem studied in the community of logical programming. Instead of the programmer explicitly specifying the path for the monkey to reach the banana, the computer actually reasons out a possible way that the monkey reaches the banana.

Temporal concurrent constraint programming (TCC) and non-deterministic temporal concurrent constraint programming (NTCC) are variants of constraint programming that can deal with time.

Constrained programming often target certain domains. The most popular are:

See also