Logic programming

1930

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. ==History== The use of mathematical logic to represent and execute computer programs is also a feature of the lambda calculus, developed by Alonzo Church in the 1930s.

1960

Foster and Elcock's Absys, on the other hand, employed a combination of equations and lambda calculus in an assertional programming language which places no constraints on the order in which operations are performed. 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.

1965

December 1965. Gabbay, Dov M.; Hogger, Christopher John; Robinson, J.A., eds.

1970

Foster and Elcock's Absys, on the other hand, employed a combination of equations and lambda calculus in an assertional programming language which places no constraints on the order in which operations are performed. 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.

1971

During the summer of 1971, Colmerauer and Kowalski discovered that the clausal form of logic could be used to represent formal grammars and that resolution theorem provers could be used for parsing.

IJCAI 1971. Carl Hewitt.

1972

In particular, Prakken and Sartor credit the representation of the British Nationality Act as a logic program with being "hugely influential for the development of computational representations of legislation, showing how logic programming enables intuitively appealing representations that can be directly deployed to generate automatic inferences". ==Variants and extensions== ===Prolog=== The programming language Prolog was developed in 1972 by Alain Colmerauer.

They observed that some theorem provers, like hyper-resolution, behave as bottom-up parsers and others, like SL-resolution (1971), behave as top-down parsers. It was in the following summer of 1972, that Kowalski, again working with Colmerauer, developed the procedural interpretation of implications.

Kowalski's procedural interpretation and LUSH were described in a 1973 memo, published in 1974. Colmerauer, with Philippe Roussel, used this dual interpretation of clauses as the basis of Prolog, which was implemented in the summer and autumn of 1972.

The first Prolog program, also written in 1972 and implemented in Marseille, was a French question-answering system.

33(3): 374–425 (2001) Ulf Nilsson and Jan Maluszynski, Logic, Programming and Prolog ==External links== Logic Programming Virtual Library entry Bibliographies on Logic Programming Association for Logic Programming (ALP) Theory and Practice of Logic Programming (journal) Logic programming in C++ with Castor Logic programming in Oz Prolog Development Center Racklog: Logic Programming in Racket Computer-related introductions in 1972 Programming paradigms Logic

1973

Kowalski's procedural interpretation and LUSH were described in a 1973 memo, published in 1974. Colmerauer, with Philippe Roussel, used this dual interpretation of clauses as the basis of Prolog, which was implemented in the summer and autumn of 1972.

1974

Kowalski's procedural interpretation and LUSH were described in a 1973 memo, published in 1974. Colmerauer, with Philippe Roussel, used this dual interpretation of clauses as the basis of Prolog, which was implemented in the summer and autumn of 1972.

1977

The use of Prolog as a practical programming language was given great momentum by the development of a compiler by David Warren in Edinburgh in 1977.

1980

Its development was given a big impetus in the 1980s by its choice for the systems programming language of the Japanese Fifth Generation Project (FGCS). A concurrent logic program is a set of guarded Horn clauses of the form: :H :- G1, …, Gn | B1, …, Bn. The conjunction G1, ...

1990

An initial problem is solved by reducing it to a satisfiable conjunction of constraints. The following constraint logic program represents a toy temporal database of john's history as a teacher: teaches(john, hardware, T) :- 1990 ≤ T, T Here ≤ and are constraint predicates, with their usual intended semantics.

1991

Some early designs of logic programming languages based on linear logic include LO [Andreoli & Pareschi, 1991], Lolli, ACL, and Forum [Miller, 1996].

1996

Some early designs of logic programming languages based on linear logic include LO [Andreoli & Pareschi, 1991], Lolli, ACL, and Forum [Miller, 1996].

2006

AAAI Spring Symposium: What Went Wrong and Why: Lessons from AI Research and Applications 2006: 2–9. Evgeny Dantsin, Thomas , Georg Gottlob, Andrei Voronkov: Complexity and expressive power of logic programming.

2010

The following goal clause queries the database to find out when john both taught logic and was a professor: :- teaches(john, logic, T), rank(john, professor, T). The solution is 2010 ≤ T, T ≤ 2012. Constraint logic programming has been used to solve problems in such fields as civil engineering, mechanical engineering, digital circuit verification, automated timetabling, air traffic control, and finance.

2012

The following goal clause queries the database to find out when john both taught logic and was a professor: :- teaches(john, logic, T), rank(john, professor, T). The solution is 2010 ≤ T, T ≤ 2012. Constraint logic programming has been used to solve problems in such fields as civil engineering, mechanical engineering, digital circuit verification, automated timetabling, air traffic control, and finance.




All text is taken from Wikipedia. Text is available under the Creative Commons Attribution-ShareAlike License .

Page generated on 2021-08-05