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!
=== Impact === Although Prolog is widely used in research and education,<ref>{{Cite web |title=Computer science - Programming Languages, Syntax, Algorithms {{!}} Britannica |url=https://www.britannica.com/science/computer-science/Programming-languages |access-date=2023-07-12 |website=www.britannica.com |language=en}}</ref> Prolog and other logic programming languages have not had a significant impact on the computer industry in general.<ref name="RealWorld">Logic programming for the real world. Zoltan Somogyi, Fergus Henderson, Thomas Conway, Richard O'Keefe. Proceedings of the ILPS'95 Postconference Workshop on Visions for the Future of Logic Programming.</ref> Most applications are small by industrial standards, with few exceeding 100,000 lines of code.<ref name="RealWorld"/><ref name="The Prolog 1000 database">{{Cite web |url=http://www.faqs.org/faqs/prolog/resource-guide/part1/section-9.html |title=FAQ: Prolog Resource Guide 1/2 [Monthly posting]Section - [1-8] The Prolog 1000 Database |website=Faqs.org}}</ref> [[Programming in the large]] is considered to be complex because not all Prolog compilers support modules, and there are compatibility problems between the module systems of the major Prolog compilers.<ref name="cs.kuleuven.ac.be"/> Portability of Prolog code across implementations has also been a problem, but developments since 2007 have meant: "the portability within the family of Edinburgh/Quintus derived Prolog implementations is good enough to allow for maintaining portable real-world applications."<ref>Jan Wielemaker and VΔ±tor Santos Costa: [http://www.swi-prolog.org/download/publications/porting.pdf Portability of Prolog programs: theory and case-studies]. [http://www.floc-conference.org/CICLOPS-WLPE-accepted.html CICLOPS-WLPE Workshop 2010] {{Webarchive|url=https://web.archive.org/web/20100716184811/http://www.floc-conference.org/CICLOPS-WLPE-accepted.html |date=2010-07-16}}.</ref> Software developed in Prolog has been criticised for having a high performance penalty compared to conventional programming languages. In particular, Prolog's non-deterministic evaluation strategy can be problematic when programming deterministic computations, or when even using "don't care non-determinism" (where a single choice is made instead of backtracking over all possibilities). Cuts and other language constructs may have to be used to achieve desirable performance, destroying one of Prolog's main attractions, the ability to run programs "backwards and forwards".<ref name="rethinking">{{cite conference |first1=Oleg |last1=Kiselyov |first2=Yukiyoshi |last2=Kameyama |title=Re-thinking Prolog |conference=Proc. 31st meeting of the Japan Society for Software Science and Technology |year=2014 |url=http://okmij.org/ftp/kakuritu/logic-programming.html#vs-prolog}}</ref> Prolog is not purely declarative: because of constructs like the [[Cut (logic programming)|cut operator]], a procedural reading of a Prolog program is needed to understand it.<ref>{{citation|first=Torkel|last=Franzen|date=1994|url=http://dtai.cs.kuleuven.be/projects/ALP/newsletter/archive_93_96/comment/decl.html|title=Declarative vs procedural|journal=Association of Logic Programming|volume=7|issue=3}}</ref> The order of clauses in a Prolog program is significant, as the execution strategy of the language depends on it.<ref>{{cite journal |title=Complexity and Expressive Power of Logic Programming |journal=[[ACM Computing Surveys]] |first1=Evgeny |last1=Dantsin |first2=Thomas |last2=Eiter |first3=Georg |last3=Gottlob |first4=Andrei |last4=Voronkov |year=2001 |volume=33 |issue=3 |pages=374β425 |doi=10.1145/502807.502810|citeseerx=10.1.1.616.6372 |s2cid=518049}}</ref> Other logic programming languages, such as [[Datalog]], are truly declarative but restrict the language. As a result, many practical Prolog programs are written to conform to Prolog's [[depth-first search]] order, rather than as purely declarative logic programs.<ref name="rethinking"/>
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)