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
Prolog
(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!
{{Short description|Programming language that uses first order logic}} {{About|the programming language|the narrative device|Prologue|other uses|Prologue (disambiguation)}} {{Infobox programming language | paradigm = [[Logic programming|Logic]] | designers = [[Alain Colmerauer]] | released = {{Start date and age|1972}} | latest release version = Part 1: General core-Edition 1 ({{Start date and age|1995|06}})<br />Part 2: Modules-Edition 1 ({{Start date and age|2000|06}}) | latest release date = | typing = Untyped (its single data type is "term") | implementations = [http://www.amzi.com/#apls Amzi! Prolog], [[B-Prolog]], [[Ciao (programming language)|Ciao]], [[ECLiPSe]], [[GNU Prolog]], [[Logic Programming Associates|LPA Prolog]], [[Poplog]], [https://homepages.inf.ed.ac.uk/stg/research/Psharp/ P#], [[Quintus Prolog]], [https://www.scryer.pl/ Scryer Prolog], [https://sicstus.sics.se/ SICStus], [https://dobrev.com/ Strawberry], [[SWI-Prolog]], [http://tau-prolog.org/ Tau Prolog], [http://tuprolog.unibo.it/ tuProlog], [https://www.lpai.uk/win.htm WIN-PROLOG] [[XSB]], [[YAP (Prolog)|YAP]]. | dialects = [[#ISO Prolog|ISO Prolog]], Edinburgh Prolog | influenced by = [[Planner (programming language)|Planner]] | influenced = [[Constraint Handling Rules|CHR]], [[Clojure]], [[Datalog]], [[Erlang (programming language)|Erlang]], [http://epilog.stanford.edu/ Epilog], [[KL0]], [[KL1]], [[Logtalk]], [[Mercury (programming language)|Mercury]], [[Oz (programming language)|Oz]], [[Strand (programming language)|Strand]], [[Visual Prolog]] | file_ext = <code>.pl</code>, <code>.pro</code>, <code>.P</code> | website = Part 1: {{URL|https://www.iso.org/standard/21413.html}}<br /> Part 2: {{URL|https://www.iso.org/standard/20775.html}} | wikibooks = Prolog }} '''Prolog''' is a [[logic programming]] language that has its origins in [[artificial intelligence]], [[automated theorem proving]] and [[computational linguistics]].<ref name=Clocksin2003>{{Cite book |last1=Clocksin |first1=William F. |last2=Mellish |first2=Christopher S. |title=Programming in Prolog |year=2003 |publisher=Springer-Verlag |location=Berlin; New York |isbn=978-3-540-00678-7}}</ref><ref name=Bratko2012>{{Cite book |last1=Bratko |first1=Ivan |title=Prolog programming for artificial intelligence |edition=4th |year=2012 |publisher=Addison Wesley |location=Harlow, England; New York |isbn=978-0-321-41746-6}}</ref><ref name=Covington1994>{{Cite book |last1=Covington |first1=Michael A. |title=Natural language processing for Prolog programmers |year=1994 |publisher=Prentice Hall |location=Englewood Cliffs, N.J. |isbn=978-0-13-629213-5}}</ref> Prolog has its roots in [[first-order logic]], a [[formal logic]], and unlike many other [[programming language]]s, Prolog is intended primarily as a [[declarative programming]] language: the program is a set of facts and [[Horn clause|rules]], which define [[Finitary relation|relations]]. A [[computation]] is initiated by running a ''query'' over the program.<ref name=lloyd84/> Prolog was one of the first logic programming languages<ref>See {{section link|Logic programming|History}}.</ref> and remains the most popular such language today, with several free and commercial implementations available. The language has been used for [[automated theorem proving|theorem proving]],<ref>{{Cite journal |last1=Stickel |first1=M. E. |title=A prolog technology theorem prover: Implementation by an extended prolog compiler |journal=[[Journal of Automated Reasoning]] |volume=4 |issue=4 |pages=353β380 |year=1988 |doi=10.1007/BF00297245 |citeseerx=10.1.1.47.3057 |s2cid=14621218}}</ref> [[expert system]]s,<ref>{{cite book |author=Merritt, Dennis |title=Building expert systems in Prolog |publisher=Springer-Verlag |location=Berlin |year=1989 |isbn=978-0-387-97016-5 |url-access=registration |url=https://archive.org/details/buildingexpertsy0000merr}}</ref> [[term rewriting]],<ref>Felty, Amy. "A logic programming approach to implementing higher-order term rewriting." Extensions of Logic Programming (1992): 135-161.</ref> [[type system]]s,<ref name="Lee2015">{{cite book|author=Kent D. Lee|title=Foundations of Programming Languages|url=https://books.google.com/books?id=dERFBgAAQBAJ&q=prolog+type+inference&pg=PA298|date=19 January 2015|publisher=Springer|isbn=978-3-319-13314-0|pages=298β}}</ref> and [[automated planning]],<ref name="Schmid2003">{{cite book|author=Ute Schmid|author-link= Ute Schmid |title=Inductive Synthesis of Functional Programs: Universal Planning, Folding of Finite Programs, and Schema Abstraction by Analogical Reasoning|url=https://books.google.com/books?id=p-Fy25LE4lMC|date=21 August 2003|publisher=Springer Science & Business Media|isbn=978-3-540-40174-2}}</ref> as well as its original intended field of use, [[natural language processing]].<ref>{{cite book |author1=Fernando C. N. Pereira |author-link1=Fernando Pereira |author2=Stuart M. Shieber |year=2005 |title=Prolog and Natural Language Analysis |publisher=Microtome |url=http://mtome.com/Publications/PNLA/pnla.html}}</ref><ref name=lally>{{cite web |author1=Adam Lally |author2=Paul Fodor |date=31 March 2011 |url=http://www.cs.nmsu.edu/ALP/2011/03/natural-language-processing-with-prolog-in-the-ibm-watson-system/ |title=Natural Language Processing With Prolog in the IBM Watson System |publisher=Association for Logic Programming |access-date=13 June 2014 |archive-date=3 September 2014 |archive-url=https://web.archive.org/web/20140903064037/http://www.cs.nmsu.edu/ALP/2011/03/natural-language-processing-with-prolog-in-the-ibm-watson-system/ |url-status=dead }} See also [[Watson (computer)]].</ref> Prolog is a Turing-complete, general-purpose programming language, which is well-suited for intelligent knowledge-processing applications.
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)