Prolog Programming Language
(Redirected from Prolog)
- AKA: Programming with Logic.
- It can be used to specify a Prolog Program.
- It can describe Facts and Rules in the form of Goals.
- General form: p:- p1, p2, …, pN
- p is the rule head
- pi is a subgoal
- It can construct Prolog Relations and Prolog Queries
- It has a single data type, the Prolog Term.
- It was developed in Marseilles in 1972 by Alain Colmerauer and Philippe Roussel.
- See: Datalog Programming Language; Prolog Glossary; Clause; First-Order Logic; Inductive Logic Programming; Declarative Programming Language.
- (Sammut & Webb, 2011) ⇒ Claude Sammut, and Geoffrey I. Webb. (2011). “Prolog.” In: (Sammut & Webb, 2011) p.811
- (Wikipedia, 2009) ⇒ http://en.wikipedia.org/wiki/Prolog
- Prolog is a logic programming language. It is a general purpose language often associated with artificial intelligence and computational linguistics. It has a purely logical subset, called "pure Prolog", as well as a number of extralogical features.
- Prolog has its roots in formal logic, and unlike many other programming languages, Prolog is declarative: The program logic is expressed in terms of relations, and execution is triggered by running queries over these relations. Relations and queries are constructed using Prolog's single data type, the term. Relations are defined by clauses. Given a query, the Prolog engine attempts to find a resolution refutation of the negated query. If the negated query can be refuted, i.e., an instantiation for all free variables is found that makes the union of clauses and the singleton set consisting of the negated query false, it follows that the original query, with the found instantiation applied, is a logical consequence of the program. This makes Prolog (and other logic programming languages) particularly useful for database, symbolic mathematics, and language parsing applications. Because Prolog allows impure predicates, checking the truth value of certain special predicates may have some deliberate side effect, such as printing a value to the screen. This permits the programmer to use some amount of conventional imperative programming when the logical paradigm is inconvenient.
- The language was first conceived by a group around Alain Colmerauer in Marseille, France, in the early 1970s. According to Robert Kowalski, the first Prolog system was developed in 1972 by Alain Colmerauer and Phillipe Roussel.  However, David H. D. Warren created the Warren Abstract Machine, an early and influential Prolog compiler. Prolog was one of the first logic programming languages, and remains among the most popular such languages today, with many free and commercial implementations available. While initially aimed at natural language processing, the language has since then stretched far into other areas like theorem proving, expert systems, games, automated answering systems, ontologies and sophisticated control systems, and modern Prolog environments support the creation of graphical user interfaces, as well as administrative and networked applications.