Prolog

Prolog
ParadigmLogic
Designed byAlain Colmerauer
First appeared1972; 52 years ago (1972)
Stable release
Part 1: General core-Edition 1 (June 1995; 29 years ago (1995-06))
Part 2: Modules-Edition 1 (June 2000; 24 years ago (2000-06))
Typing disciplineUntyped (its single data type is "term")
Filename extensions.pl, .pro, .P
WebsitePart 1: www.iso.org/standard/21413.html
Part 2: www.iso.org/standard/20775.html
Major implementations
Amzi! Prolog, B-Prolog, Ciao, ECLiPSe, GNU Prolog, LPA Prolog, Poplog, P#, Quintus Prolog, Scryer Prolog, SICStus, Strawberry, SWI-Prolog, Tau Prolog, tuProlog, WIN-PROLOG XSB, YAP.
Dialects
ISO Prolog, Edinburgh Prolog
Influenced by
Planner
Influenced
CHR, Clojure, Datalog, Erlang, Epilog, KL0, KL1, Logtalk, Mercury, Oz, Strand, Visual Prolog

Prolog is a logic programming language that has its origins in artificial intelligence, automated theorem proving and computational linguistics.[1][2][3]

Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is intended primarily as a declarative programming language: the program is a set of facts and rules, which define relations. A computation is initiated by running a query over the program.[4]

Prolog was one of the first logic programming languages[5] and remains the most popular such language today, with several free and commercial implementations available. The language has been used for theorem proving,[6] expert systems,[7] term rewriting,[8] type systems,[9] and automated planning,[10] as well as its original intended field of use, natural language processing.[11][12]

Prolog is a Turing-complete, general-purpose programming language, which is well-suited for intelligent knowledge-processing applications.

  1. ^ Clocksin, William F.; Mellish, Christopher S. (2003). Programming in Prolog. Berlin; New York: Springer-Verlag. ISBN 978-3-540-00678-7.
  2. ^ Bratko, Ivan (2012). Prolog programming for artificial intelligence (4th ed.). Harlow, England; New York: Addison Wesley. ISBN 978-0-321-41746-6.
  3. ^ Covington, Michael A. (1994). Natural language processing for Prolog programmers. Englewood Cliffs, N.J.: Prentice Hall. ISBN 978-0-13-629213-5.
  4. ^ Cite error: The named reference lloyd84 was invoked but never defined (see the help page).
  5. ^ See Logic programming § History.
  6. ^ Stickel, M. E. (1988). "A prolog technology theorem prover: Implementation by an extended prolog compiler". Journal of Automated Reasoning. 4 (4): 353–380. CiteSeerX 10.1.1.47.3057. doi:10.1007/BF00297245. S2CID 14621218.
  7. ^ Merritt, Dennis (1989). Building expert systems in Prolog. Berlin: Springer-Verlag. ISBN 978-0-387-97016-5.
  8. ^ Felty, Amy. "A logic programming approach to implementing higher-order term rewriting." Extensions of Logic Programming (1992): 135-161.
  9. ^ Kent D. Lee (19 January 2015). Foundations of Programming Languages. Springer. pp. 298–. ISBN 978-3-319-13314-0.
  10. ^ Ute Schmid (21 August 2003). Inductive Synthesis of Functional Programs: Universal Planning, Folding of Finite Programs, and Schema Abstraction by Analogical Reasoning. Springer Science & Business Media. ISBN 978-3-540-40174-2.
  11. ^ Fernando C. N. Pereira; Stuart M. Shieber (2005). Prolog and Natural Language Analysis. Microtome.
  12. ^ Adam Lally; Paul Fodor (31 March 2011). "Natural Language Processing With Prolog in the IBM Watson System". Association for Logic Programming. Archived from the original on 3 September 2014. Retrieved 13 June 2014. See also Watson (computer).