Logic programming

(Redirected from Logical programming)

Logic programming is a declarative 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. The most widely used logic programming language is Prolog. Other, more modern examples of the paradigm include Mercury, Visual Prolog, Oz and the Scientific Community Metaphor. Schematically, the process is

facts + rules = results.

A related paradigm is inductive logic programming, which is concerned with finding general rules based on a sample of facts.

The point of logic 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 logic programming.

The monkey and banana problem is a famous problem studied in the logic programming community. 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.

Logic programming creates logical models that describe the world in which a problem exists. The logic programming approach is to create new statements about its model. The knowledge of the state of the world is expanded each time. A problem is typically stated as a single hypothesis. The logic program solves the problem by attempting to prove whether the hypothesis is actually a theorem about the model.

Some popular application domains for logic programming are:

• Expert systems, where the program generates a recommendation or answer from a large model of the application domain.
• Automated theorem proving, where the program generates novel theorems to extend some existing body of theory.

• Art and Cultures
• Countries of the World (http://www.academickids.com/encyclopedia/index.php/Countries)
• Space and Astronomy