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