Logic programming

logicRule-based programminglogic programming languagelogic programslogic programlogical programmingrule-basedlogicallogic languagerelational programming
Logic programming is a type of programming paradigm which is largely based on formal logic.wikipedia
272 Related Articles

Prolog

SICStus PrologProlog IISICStus
Major logic programming language families include Prolog, answer set programming (ASP) and Datalog. Kowalski collaborated with Colmerauer in Marseille, who developed these ideas in the design and implementation of the programming language Prolog.
Prolog is a logic programming language associated with artificial intelligence and computational linguistics.

Datalog

magic sets
Major logic programming language families include Prolog, answer set programming (ASP) and Datalog. Prolog gave rise to the programming languages ALF, Fril, Gödel, Mercury, Oz, Ciao, Visual Prolog, XSB, and λProlog, as well as a variety of concurrent logic programming languages, constraint logic programming languages and Datalog.
Datalog is a declarative logic programming language that syntactically is a subset of Prolog.

Programming paradigm

Multi-paradigmmulti-paradigm programming languageprogramming paradigms
Logic programming is a type of programming paradigm which is largely based on formal logic.
The logic programming paradigm views computation as automated reasoning over a body of knowledge.

Answer set programming

Answer setanswer set programAnswer Set Programs
Major logic programming language families include Prolog, answer set programming (ASP) and Datalog. As an alternative to the completion semantics, negation as failure can also be interpreted epistemically, as in the stable model semantics of answer set programming.
It is based on the stable model (answer set) semantics of logic programming.

Programming language

programming languageslanguagedialect
Any program written in a logic programming language is a set of sentences in logical form, expressing facts and rules about some problem domain.
More refined paradigms include procedural programming, object-oriented programming, functional programming, and logic programming; some languages are hybrids of paradigms or multi-paradigmatic.

Declarative programming

declarativedeclarative languagedeclarative programming language
In ASP and Datalog, logic programs have only a declarative reading, and their execution is performed by means of a proof procedure or model generator whose behaviour is not meant to be under the control of the programmer.
Common declarative languages include those of database query languages (e.g., SQL, XQuery), regular expressions, logic programming, functional programming, and configuration management systems.

John Alan Robinson

J. Alan RobinsonRobinsonAlan Robinson
Advocates of declarative representations were notably working at Stanford, associated with John McCarthy, Bertram Raphael and Cordell Green, and in Edinburgh, with John Alan Robinson (an academic visitor from Syracuse University), Pat Hayes, and Robert Kowalski.
His unification algorithm eliminated one source of combinatorial explosion in resolution provers; it also prepared the ground for the logic programming paradigm, in particular for the Prolog language.

Association for Logic Programming

Theory and Practice of Logic ProgrammingALPAssociation of Logic Programming
The Association for Logic Programming was founded to promote Logic Programming in 1986.
Its mission is "to contribute to the development of Logic Programming, relate it to other formal and also to humanistic sciences, and to promote its uses in academia and industry all over the world".

SLD resolution

selective linear definite clause resolutionSL-resolutionSLD-resolution
Kowalski, on the other hand, developed SLD resolution, a variant of SL-resolution, and showed how it treats implications as goal-reduction procedures.
SLD resolution (Selective Linear Definite clause resolution) is the basic inference rule used in logic programming.

Mercury (programming language)

MercuryZoltan SomogyiMercury programming language
Prolog gave rise to the programming languages ALF, Fril, Gödel, Mercury, Oz, Ciao, Visual Prolog, XSB, and λProlog, as well as a variety of concurrent logic programming languages, constraint logic programming languages and Datalog.
Mercury is a purely declarative logic programming language.

Artificial intelligence

AIA.I.artificially intelligent
Logic programming in its present form can be traced back to debates in the late 1960s and early 1970s about declarative versus procedural representations of knowledge in artificial intelligence.
Logic was also the focus of the work at the University of Edinburgh and elsewhere in Europe which led to the development of the programming language Prolog and the science of logic programming.

John McCarthy (computer scientist)

John McCarthyMcCarthyMcCarthy, John
Advocates of declarative representations were notably working at Stanford, associated with John McCarthy, Bertram Raphael and Cordell Green, and in Edinburgh, with John Alan Robinson (an academic visitor from Syracuse University), Pat Hayes, and Robert Kowalski.
In 1958, he proposed the advice taker, which inspired later work on question-answering and logic programming.

Alain Colmerauer

Colmerauer
Kowalski collaborated with Colmerauer in Marseille, who developed these ideas in the design and implementation of the programming language Prolog.
He was a professor at Aix-Marseille University, and the creator of the logic programming language Prolog.

Ciao (programming language)

Ciao
Prolog gave rise to the programming languages ALF, Fril, Gödel, Mercury, Oz, Ciao, Visual Prolog, XSB, and λProlog, as well as a variety of concurrent logic programming languages, constraint logic programming languages and Datalog.
Ciao is a general-purpose programming language which supports logic, constraint, functional, higher-order, and object-oriented programming styles.

ΛProlog

lambdaProlog
Prolog gave rise to the programming languages ALF, Fril, Gödel, Mercury, Oz, Ciao, Visual Prolog, XSB, and λProlog, as well as a variety of concurrent logic programming languages, constraint logic programming languages and Datalog.
λProlog, also written lambda Prolog, is a logic programming language featuring polymorphic typing, modular programming, and higher-order programming.

Constraint logic programming

CLPConstraint logicConstraint Programming
Prolog gave rise to the programming languages ALF, Fril, Gödel, Mercury, Oz, Ciao, Visual Prolog, XSB, and λProlog, as well as a variety of concurrent logic programming languages, constraint logic programming languages and Datalog.
Constraint logic programming is a form of constraint programming, in which logic programming is extended to include concepts from constraint satisfaction.

Concurrent logic programming

concurrent logic programming languagesConcurrent logic
Prolog gave rise to the programming languages ALF, Fril, Gödel, Mercury, Oz, Ciao, Visual Prolog, XSB, and λProlog, as well as a variety of concurrent logic programming languages, constraint logic programming languages and Datalog.
Concurrent logic programming is a variant of logic programming in which programs are sets of guarded Horn clauses of the form:

Backward chaining

backward reasoningWorking backward from the goalbackward chainer
Planner featured pattern-directed invocation of procedural plans from goals (i.e. goal-reduction or backward chaining) and from assertions (i.e. forward chaining).
Backward chaining is implemented in logic programming by SLD resolution.

Gödel (programming language)

Gödel
Prolog gave rise to the programming languages ALF, Fril, Gödel, Mercury, Oz, Ciao, Visual Prolog, XSB, and λProlog, as well as a variety of concurrent logic programming languages, constraint logic programming languages and Datalog.
Gödel is a declarative, general-purpose programming language that adheres to the logic programming paradigm.

Algebraic Logic Functional programming language

ALF
Prolog gave rise to the programming languages ALF, Fril, Gödel, Mercury, Oz, Ciao, Visual Prolog, XSB, and λProlog, as well as a variety of concurrent logic programming languages, constraint logic programming languages and Datalog.
Algebraic Logic Functional programming language, also known as ALF, is a programming language which combines functional and logic programming techniques.

Stable model semantics

stable modelstrong negationstable
As an alternative to the completion semantics, negation as failure can also be interpreted epistemically, as in the stable model semantics of answer set programming.
The concept of a stable model, or answer set, is used to define a declarative semantics for logic programs with negation as failure.

Negation as failure

Clark's completionnegation-as-failure
The negation in the negative literals not B i is commonly referred to as "negation as failure", because in most implementations, a negative condition not B i is shown to hold by showing that the positive condition B i fails to hold.
Negation as failure (NAF, for short) is a non-monotonic inference rule in logic programming, used to derive (i.e. that ~p is assumed not to hold) from failure to derive ~p.

Mathematical logic

formal logicsymbolic logiclogic
Logic programming is a type of programming paradigm which is largely based on formal logic.
Computer science also contributes to mathematics by developing techniques for the automatic checking or even finding of proofs, such as automated theorem proving and logic programming.

Robert Kowalski

Bob KowalskiKowalskiProf Robert Kowalski
Advocates of declarative representations were notably working at Stanford, associated with John McCarthy, Bertram Raphael and Cordell Green, and in Edinburgh, with John Alan Robinson (an academic visitor from Syracuse University), Pat Hayes, and Robert Kowalski.
He developed SLD resolution and the procedural interpretation of Horn clauses, which underpin the operational semantics of backward reasoning in logic programming.

Non-monotonic logic

non-monotonic reasoningnon-monotonicnonmonotonic reasoning
Logic programming languages that include this extension have the knowledge representation capabilities of a non-monotonic logic.