Logic programming

Logic programming is a programming paradigm which is largely based on formal logic. Any program written in a logic programming language is a set of sentences in logical form, expressing facts and rules about some problem domain. Major logic programming language families include Prolog, answer set programming (ASP) and Datalog. In all of these languages, rules are written in the form of clauses: H :- B1, …, Bn. and are read declaratively as logical implications: H if B1 and … and Bn. H. to solve H, solve B1, and ... and solve Bn. Consider the following clause as an example: fallible(X) :- human(X).

Comment
enLogic programming is a programming paradigm which is largely based on formal logic. Any program written in a logic programming language is a set of sentences in logical form, expressing facts and rules about some problem domain. Major logic programming language families include Prolog, answer set programming (ASP) and Datalog. In all of these languages, rules are written in the form of clauses: H :- B1, …, Bn. and are read declaratively as logical implications: H if B1 and … and Bn. H. to solve H, solve B1, and ... and solve Bn. Consider the following clause as an example: fallible(X) :- human(X).
Has abstract
enLogic programming is a programming paradigm which is largely based on formal logic. Any program written in a logic programming language is a set of sentences in logical form, expressing facts and rules about some problem domain. Major logic programming language families include Prolog, answer set programming (ASP) and Datalog. In all of these languages, rules are written in the form of clauses: H :- B1, …, Bn. and are read declaratively as logical implications: H if B1 and … and Bn. H is called the head of the rule and B1, ..., Bn is called the body. Facts are rules that have no body, and are written in the simplified form: H. In the simplest case in which H, B1, ..., Bn are all atomic formulae, these clauses are called definite clauses or Horn clauses. However, there are many extensions of this simple case, the most important one being the case in which conditions in the body of a clause can also be negations of atomic formulas. Logic programming languages that include this extension have the knowledge representation capabilities of a non-monotonic logic. 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 controlled by the programmer. However, in the Prolog family of languages, logic programs also have a procedural interpretation as goal-reduction procedures: to solve H, solve B1, and ... and solve Bn. Consider the following clause as an example: fallible(X) :- human(X). based on an example used by Terry Winograd to illustrate the programming language Planner. As a clause in a logic program, it can be used both as a procedure to test whether X is fallible by testing whether X is human, and as a procedure to find an X which is fallible by finding an X which is human. Even facts have a procedural interpretation. For example, the clause: human(socrates). can be used both as a procedure to show that socrates is human, and as a procedure to find an X that is human by "assigning" socrates to X. The declarative reading of logic programs can be used by a programmer to verify their correctness. Moreover, logic-based program transformation techniques can also be used to transform logic programs into logically equivalent programs that are more efficient. In the Prolog family of logic programming languages, the programmer can also use the known problem-solving behaviour of the execution mechanism to improve the efficiency of programs.
Hypernym
Paradigm
Is primary topic of
Logic programming
Label
enLogic programming
Link from a Wikipage to an external page
www.ijcai.org/Proceedings/71/Papers/014%20A.pdf
www.worldcat.org/title/handbook-of-logic-in-artificial-intelligence-and-logic-programming/oclc/26300491
dl.acm.org/doi/abs/10.1145/365691.365960
repository.upenn.edu/cis_reports/711
web.archive.org/web/20170102172145/https:/pdfs.semanticscholar.org/9993/ec68770faaab132da6945492b0e4ad07eb7b.pdf
docs.racket-lang.org/racklog/
liinwww.ira.uka.de/bibliography/LogicProgramming/
www.cs.kuleuven.be/~dtai/projects/ALP/TPLP/
www.ida.liu.se/~ulfni/lpp/
www.logicprogramming.org/
www.pdc.dk/
web.archive.org/web/20050828194751/http:/vl.fmnet.info/logic-prog/
web.archive.org/web/20090108012954/http:/www.mpprogramming.com/Cpp/
www.cs.rit.edu/~rlaz/is2014/files/McCarthyProgramsWithCommonSense.pdf
www.mozart-oz.org/documentation/tutorial/node12.html
cmpe.emu.edu.tr/bayram/courses/531/forpresentation/p374-dantsin.pdf
redwood.cs.ttu.edu/~mgelfond/PAPERS/survey.pdf%7C
www.doc.ic.ac.uk/~rak/papers/the%20early%20years.pdf
Link from a Wikipage to another Wikipage
Abductive logic programming
Abductive reasoning
Absys
Actor model
Air traffic control
Alain Colmerauer
Algebraic Logic Functional programming language
Alonzo Church
And-or tree
Answer set programming
Artificial intelligence
Association for Logic Programming
Atomic formula
Automated theorem proving
Automated timetabling
Backward chaining
Bertram Raphael
Boolean satisfiability problem
Category:Computer-related introductions in 1972
Category:Logic
Category:Logic programming
Category:Logic programming languages
Category:Programming paradigms
Ciao (programming language)
Circumscription (logic)
Civil engineering
Clausal normal form
Clause (logic)
Closed world assumption
Concurrent constraint logic programming
Concurrent logic programming
Concurrent programming
Constraint logic programming
Constraint solving
Control theory
Cordell Green
Datalog
Declarative programming
Digital circuit
Dov Gabbay
Eugene Charniak
Event calculus
Fifth generation computer
Fixed point (mathematics)
F-logic
Flora-2
Formal grammars
Formal methods
Forward chaining
Fril
Functional programming
Fuzzy logic
Gerald Jay Sussman
Gödel (programming language)
Guard (computing)
Higher-order logic
Higher-order programming
HiLog
Horn clause
Horn clauses
Indeterminacy in concurrent computation
Inductive logic programming
Inference rule
International Organization for Standardization
John Alan Robinson
John McCarthy (computer scientist)
Keith Clark (computer scientist)
Knowledge representation
Lambda calculus
Linear logic
LISP
Lisp (programming language)
Logic
Logic in computer science
Logtalk
Machine learning
Marseille
Marvin Minsky
Mechanical engineering
Mercury programming language
Metalanguage
Micro-Planner (programming language)
MIT
Model theory
Natural-language understanding
Negation as failure
Non-monotonic logic
Oz (programming language)
Oz programming language
Patrick J. Hayes
Planner (programming language)
Probabilistic inductive logic programming
Procedural programming
Programmable logic controller
Programming language
Programming paradigm
Program transformation
Prolog
Proof-theoretic semantics
R++
Reasoning system
Robert Kowalski
Rule-based machine learning
Satisfiability
Seymour Papert
SHRDLU
Situation calculus
SLD resolution
Stable model semantics
Stanford University
Statistical relational learning
Symbolic programming
Syracuse University
Terry Winograd
Transaction logic
University of Edinburgh
Vanilla (computing)
Visual Prolog
Wiktionary:metalevel
XSB
ΛProlog
SameAs
2Zsct
4195096-3
Lập trình logic
Logické programování
Logičko programiranje
Logičko programiranje
Logic programming
Logiikkapohjainen ohjelmointi
Logikala programigado
Logikprogrammering
Logische Programmierung
Logisch programmeren
Loogiline programmeerimine
m.04k52
Mantık programlama
Pengaturcaraan logik
Programação lógica
Programació lògica
Programación lógica
Programación lóxica
Programimi logjik
Programmation logique
Programmazione logica
Programowanie logiczne
Q275603
Ríomhchlárú loighce
Логическое программирование
Логическо програмиране
Логичко програмирање
Логічне програмування
תכנות לוגי
برمجة منطقية
برنامه‌نویسی منطقی
যুক্তিভিত্তিক প্রোগ্রামিং
การเขียนโปรแกรมเชิงตรรกะ
論理プログラミング
邏輯編程
논리형 프로그래밍
Subject
Category:Computer-related introductions in 1972
Category:Logic
Category:Logic programming
Category:Programming paradigms
WasDerivedFrom
Logic programming?oldid=1121161240&ns=0
WikiPageLength
39514
Wikipage page ID
17927
Wikipage revision ID
1121161240
WikiPageUsesTemplate
Template:Authority control
Template:Citation needed
Template:Cite book
Template:Cite journal
Template:Commons category
Template:Computable knowledge
Template:Main
Template:More footnotes
Template:Not a typo
Template:POV statement
Template:Programming paradigms
Template:Reflist
Template:Short description
Template:Types of programming languages