Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Logic programming
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==History== The use of mathematical logic to represent and execute [[computer program]]s is also a feature of the [[lambda calculus]], developed by [[Alonzo Church]] in the 1930s. However, the first proposal to use the [[Clausal normal form|clausal]] form of logic for representing computer programs was made by [[Cordell Green]].<ref>{{cite conference|first=Cordell|last=Green|url=https://www.ijcai.org/Proceedings/69/Papers/023.pdf|title=Application of Theorem Proving to Problem Solving|conference=IJCAI 1969}}</ref> This used an axiomatization of a subset of [[LISP]], together with a representation of an input-output relation, to compute the relation by simulating the execution of the program in LISP. Foster and Elcock's [[Absys]], on the other hand, employed a combination of equations and lambda calculus in an assertional programming language that places no constraints on the order in which operations are performed.<ref>{{cite conference|first1=J.M.|last1=Foster|first2=E.W.|last2=Elcock|title=ABSYS 1: An Incremental Compiler for Assertions: an Introduction|conference=Fourth Annual Machine Intelligence Workshop|series=Machine Intelligence|volume=4|place=Edinburgh, UK|publisher=[[Edinburgh University Press]]|date=1969|pages=423–429}}</ref> Logic programming, with its current syntax of facts and rules, can be traced back to debates in the late 1960s and early 1970s about declarative versus procedural representations of knowledge in [[artificial intelligence]]. Advocates of declarative representations were notably working at [[Stanford University|Stanford]], associated with [[John McCarthy (computer scientist)|John McCarthy]], [[Bertram Raphael]] and Cordell Green, and in [[University of Edinburgh|Edinburgh]], with [[John Alan Robinson]] (an academic visitor from [[Syracuse University]]), [[Patrick J. Hayes|Pat Hayes]], and [[Robert Kowalski]]. Advocates of procedural representations were mainly centered at [[MIT]], under the leadership of [[Marvin Minsky]] and [[Seymour Papert]].<ref>{{Cite journal| doi = 10.1145/35043.35046 | last1 = Kowalski | first1 = R. A. | title = The early years of logic programming | journal = Communications of the ACM | volume = 31 | pages = 38–43 | year = 1988 | s2cid = 12259230 |url=http://www.doc.ic.ac.uk/~rak/papers/the%20early%20years.pdf}}</ref> Although it was based on the proof methods of logic, [[Planner (programming language)|Planner]], developed by [[Carl Hewitt]] at MIT, was the first language to emerge within this proceduralist paradigm.<ref>{{cite conference|first=Carl|last=Hewitt|author-link=Carl Hewitt|title=Planner: A Language for Proving Theorems in Robots|url=https://www.ijcai.org/Proceedings/69/Papers/030.pdf|conference=IJCAI 1969}}</ref> Planner featured pattern-directed invocation of procedural plans from goals (i.e. goal-reduction or [[backward chaining]]) and from assertions (i.e. [[forward chaining]]). The most influential implementation of Planner was the subset of Planner, called Micro-Planner, implemented by [[Gerald Jay Sussman|Gerry Sussman]], [[Eugene Charniak]] and [[Terry Winograd]]. Winograd used Micro-Planner to implement the landmark, natural-language understanding program [[SHRDLU]].<ref name ="Winograd">{{cite journal|first=Terry|last=Winograd|author-link=Terry Winograd|title=Understanding natural language|journal=[[Cognitive Psychology (journal)|Cognitive Psychology]]|volume=3| issue = 1|date=1972|pages=1–191|doi=10.1016/0010-0285(72)90002-3}}</ref> For the sake of efficiency, Planner used a backtracking control structure so that only one possible computation path had to be stored at a time. Planner gave rise to the programming languages [[Richard Waldinger#QA4|QA4]],<ref name=Rulifson>{{cite tech report | author =Jeff Rulifson | author-link =Jeff Rulifson |author2=Jan Derksen |author3=Richard Waldinger | title =QA4, A Procedural Calculus for Intuitive Reasoning | id =SRI AI Center Technical Note 73 | date =November 1973 | url =https://apps.dtic.mil/sti/pdfs/ADA052440.pdf }} </ref> Popler,<ref>Davies, J.M., 1971. POPLER: a POP-2 planner. Edinburgh University, Department of Machine Intelligence and Perception.</ref> Conniver,<ref>{{cite tech report |last1=McDermott |first1=D.V. |author-link1=Drew McDermott |last2=Sussman |first2=G.J. |author-link2=Gerald Jay Sussman |date=May 1972 |title=The Conniver reference manual |id=Artificial Intelligence Memo No. 259 |url=https://www.researchgate.net/publication/37597046_The_Conniver_Reference_Manual}}</ref> QLISP,<ref>{{cite tech report |last1=Reboh |first1=R. |last2=Sacerdoti |first2=E.D. |date=August 1973 |title=A preliminary QLISP manual |publisher=Artificial Intelligence Center, SRI International |url=https://www.sri.com/publication/cyber-formal-methods-pubs/preliminary-qlisp-manual/}}</ref> and the concurrent language Ether.<ref>{{cite journal |last1=Kornfeld |first1=W.A. |last2=Hewitt |first2=C.E. |author-link2=Carl Hewitt |date=1981 |title=The scientific community metaphor |journal=IEEE Transactions on Systems, Man, and Cybernetics |volume=11 |issue=1 |pages=24–33|doi=10.1109/TSMC.1981.4308575 |hdl=1721.1/5693 |s2cid=1322857 |hdl-access=free }}</ref> Hayes and Kowalski in Edinburgh tried to reconcile the logic-based declarative approach to knowledge representation with Planner's procedural approach. Hayes (1973) developed an equational language, Golux, in which different procedures could be obtained by altering the behavior of the theorem prover.<ref>{{cite conference|first=Pat|last=Hayes|title=Computation and Deduction|book-title=Proceedings of the 2nd MFCS Symposium|publisher=[[Czechoslovak Academy of Sciences]]|date=1973|pages=105–118}}</ref> In the meanwhile, [[Alain Colmerauer]] in [[Marseille]] was working on [[natural-language understanding]], using logic to represent semantics and using resolution for question-answering. During the summer of 1971, Colmerauer invited Kowalski to Marseille, and together they discovered that the clausal form of logic could be used to represent [[formal grammars]] and that resolution theorem provers could be used for parsing. They observed that some theorem provers, like hyper-resolution,<ref>{{cite journal |last=Robinson |first=J. |date=1965 |title=Automatic deduction with hyper-resolution |journal=[[International Journal of Computer Mathematics]] |volume=1 |issue=3 |pages=227–234 |doi=10.2307/2272384|jstor=2272384 }}</ref> behave as bottom-up parsers and others, like [[SLD resolution|SL resolution]] (1971)<ref>{{cite journal|first1=Robert|last1=Kowalski|first2=Donald|last2=Kuehner|url=http://www.doc.ic.ac.uk/~rak/papers/sl.pdf|title=Linear Resolution with Selection Function|journal=[[Artificial Intelligence (journal)|Artificial Intelligence]]|volume=2|issue=3–4|date=1971|pages=227–260|doi=10.1016/0004-3702(71)90012-9}}</ref> 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 in clausal form. It also became clear that such clauses could be restricted to definite clauses or [[Horn clause]]s, and that SL-resolution could be restricted (and generalised) to [[SLD resolution]]. Kowalski's procedural interpretation and SLD were described in a 1973 memo, published in 1974.<ref name = "Kowalski">{{cite web|first=Robert|last=Kowalski|url=https://www.doc.ic.ac.uk/~rak/papers/IFIP%2074.pdf|title=Predicate Logic as a Programming Language|id=Memo 70|publisher=Department of Artificial Intelligence, [[Edinburgh University]]|date=1973}} Also in Proceedings IFIP Congress, Stockholm, North Holland Publishing Co., 1974, pp. 569–574.</ref> Colmerauer, with Philippe Roussel, used the procedural interpretation 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. The use of Prolog as a practical programming language was given great momentum by the development of a compiler by [[David H. D. Warren]] in Edinburgh in 1977. Experiments demonstrated that Edinburgh Prolog could compete with the processing speed of other [[symbolic programming]] languages such as [[Lisp (programming language)|Lisp]].<ref>{{cite journal |last1=Warren |first1=D.H. |last2=Pereira |first2=L.M. |last3=Pereira |first3=F. |date=1977 |title=Prolog-the language and its implementation compared with Lisp |journal=[[ACM SIGPLAN Notices]] |volume=12 |issue=8 |pages=109–115|doi=10.1145/872734.806939 }}</ref> Edinburgh Prolog became the ''de facto'' standard and strongly influenced the definition of [[International Organization for Standardization|ISO]] standard Prolog. Logic programming gained international attention during the 1980s, when it was chosen by the Japanese [[Ministry of International Trade and Industry]] to develop the software for the [[Fifth Generation Computer Systems]] (FGCS) project. The FGCS project aimed to use logic programming to develop advanced [[Artificial Intelligence]] applications on massively [[Parallel computing|parallel computers]]. Although the project initially explored the use of Prolog, it later adopted the use of [[concurrent logic programming]], because it was closer to the FGCS computer architecture. However, the committed choice feature of concurrent logic programming interfered with the language's logical semantics<ref>Ueda, K., 2018. Logic/constraint programming and concurrency: The hard-won lessons of the fifth generation computer project. Science of Computer Programming, 164, pp.3-17.</ref> and with its suitability for knowledge representation and problem solving applications. Moreover, the parallel computer systems developed in the project failed to compete with advances taking place in the development of more conventional, general-purpose computers. Together these two issues resulted in the FGCS project failing to meet its objectives. Interest in both logic programming and AI fell into world-wide decline.<ref>H.P. Newquist, 2020. The Brain Makers: The History Of Artificial Intelligence. The Relayer Group.</ref> In the meanwhile, more declarative logic programming approaches, including those based on the use of Prolog, continued to make progress independently of the FGCS project. In particular, although Prolog was developed to combine declarative and procedural representations of knowledge, the purely declarative interpretation of logic programs became the focus for applications in the field of [[deductive database]]s. Work in this field became prominent around 1977, when Hervé Gallaire and [[Jack Minker]] organized a workshop on logic and databases in Toulouse.<ref>{{Citation | editor1-first = Hervé | editor1-last = Gallaire | editor2-first = John 'Jack' | editor2-last = Minker | contribution = Logic and Data Bases, Symposium on Logic and Data Bases, Centre d'études et de recherches de Toulouse, 1977 | title = Advances in Data Base Theory | publisher = Plenum Press | place = New York | year = 1978 | isbn = 978-0-306-40060-5 | url-access = registration | url = https://archive.org/details/logicdatabases0000symp }}.</ref> The field was eventually renamed as ''[[Datalog]]''. This focus on the logical, declarative reading of logic programs was given further impetus by the development of [[constraint logic programming]] in the 1980s and [[Answer set programming|Answer Set Programming]] in the 1990s. It is also receiving renewed emphasis in recent applications of Prolog<ref name="Prolog Book">{{cite book |last1=Warren |first1=D.S. |editor-last1=Warren |editor-first1=D.S. |editor-last2=Dahl |editor-first2=V. |editor-last3=Eiter |editor-first3=T. |editor-last4=Hermenegildo |editor-first4=M.V. |editor-last5=Kowalski |editor-first5=R. |editor-last6=Rossi |editor-first6=F. |chapter=Introduction to Prolog |title=Prolog: The Next 50 Years |series=Lecture Notes in Computer Science() |date=2023 |volume=13900 |publisher=Springer, Cham. |doi=10.1007/978-3-031-35254-6_1 |pages=3–19|isbn=978-3-031-35253-9 }}</ref> The [[Association for Logic Programming]] (ALP) was founded in 1986 to promote Logic Programming. Its official journal until 2000, was ''[[The Journal of Logic Programming]]''. Its founding [[editor-in-chief]] was [[J. Alan Robinson]].<ref>{{cite journal |first=J. Alan |last=Robinson |year=2001 |title=Invited Editorial |journal=Theory and Practice of Logic Programming |volume=1 |issue=1 |pages=1 |publisher=[[Cambridge University Press]] |doi=10.1017/s1471068400000028|doi-broken-date=1 November 2024 |doi-access=free }}</ref> In 2001, the journal was renamed ''The Journal of Logic and Algebraic Programming'', and the official journal of ALP became ''[[Theory and Practice of Logic Programming]]'', published by [[Cambridge University Press]].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)