Prolog: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Qwertyus (overleg | bijdragen)
→‎Warren Abstract Machine: machine-afhankelijkheden: geen referentie, weg ermee
Kleuske (overleg | bijdragen)
Bronnen staan onderaan en de eerste VM kreeg navolging in andere VM's.
Regel 33:
In 1983 ontwierp [[David H. D. Warren]] een [[virtuele machine]] gericht op de taal Prolog. Omdat deze machine niet alleen het compileren van Prolog naar bytecode mogelijk maakte, maar door verschillende optimalisaties Prologcode veel efficiënter uitvoert, is de ''WAM'' een ''de facto'' standaard voor Prolog geworden. Warrens publicatie uit 1983 heeft inmiddels cultstatus.<ref name="SICStus" />
 
Ondanks het feit dat het ook mogelijk is naar ''native'' [[machinetaal]] te compileren, zijn WAM's nog steeds vrij algemeen. De voordelen van een ''native'' implementatie zijn beperkt doordat vrij veel functionaliteit uiteindelijk toch in support-functies moeten worden geïmplementeerd en het wiel veelvuldig opnieuw moet worden uitgevonden.<ref name="SICStus" /> Tevens worden onvermijdelijk machine-afhankelijkheden (''machine dependencies'') geïntroduceerd, wat de [[Softwareportabiliteit|portabiliteit]] niet ten goede komt.
 
=== Quintus en SICStus ===
Regel 48:
 
== Gebruik ==
Omdat Prolog is gebaseerd op formele logica en met behulp van een ''[[inference engine]]'' zelfstandig conclusies kan trekken, is deze taal geschikt om kennis te modelleren en de mens te ondersteunen bij het trekken van conclusies uit gegevens. De taal is dan ook een veelgebruikt hulpmiddel voor het verwerken van natuurlijke taal,<ref>{{Citeer boek |achternaam=Pereira |voornaam=Fernando C. N. |medeauteurs=Stuart M. Shieber |datum=2002 (1987) |titel=Prolog and Natural-Language Analysis |uitgever=Microtome |bladzijdes=35 |URL=http://www.mtome.com/Publications/PNLA/prolog-digital.pdf}}</ref><ref name=watson>[http://www.cs.nmsu.edu/ALP/2011/03/natural-language-processing-with-prolog-in-the-ibm-watson-system/ ''"Natural Language Processing With Prolog in the IBM Watson System"'', Lally, Fodor, 2011]</ref> [[datamining]],<ref>{{Citeer web|url=https://sicstus.sics.se/customers.html|titel=SICStus Prolog Customer References|datum=21 september 2014}}</ref><ref>{{Citeer web|url=http://people.cis.ksu.edu/~schmidt/301s09/Lectures/prologS.html|title=Introduction to Prolog|auteur=David Schmidt|uitgever=Kansas State University|datum=21 september 2014}}</ref><ref>{{Citeer web|title=Multi-Relational Data Mining: An Introduction|url=http://eecs.wsu.edu/~holder/courses/CptS570/fall10/papers/Dzeroski03.pdf|auteur=Dzeroskisz|datum=21 september 2014}}</ref> het interpreteren van de uitkomsten van [[Meten|metingen]], [[Model (wetenschap)|modellen]] en [[computersimulatie|simulaties]] en het bouwen van [[expertsysteem|expertsystemen]] en onderzoek naar [[kunstmatige intelligentie]].
 
TotHoewel het gebruik van Prolog zich in eerste instantie beperkte tot de gebruikers[[Academie|academische wereld]], werd de taal ca. 1990 in gebruik genomen in de industriële wereld, onder andere behoordendoor [[Boeing]], datom met behulp van een [[expertsysteem]] handleidingen voor de assemblage van connectors met lijsten van benodigde gereedschappen, materialen, onderdelen en procedures samensteldesamen te stellen. Het ''National Center for Atmospheric Research'' in de [[Verenigde Staten|VS]] gebruikte op Prolog gebaseerde software om kortetermijnweerberichten te genereren, in [[Boedapest]] hield een Prologapplicatie de concentraties van vervuilende stoffen in de gaten en adviseert over de te gebruiken extra filters als niveaus worden overstegen, en in het [[Verenigd Koninkrijk]] adviseerde een toepassing het personeel van een waterleidingbedrijf over optimaal gebruik van pompen, zodat de druk in het waterleidingsysteem gelijk verdeeld is.<ref>{{Citeer nieuws |achternaam=Roth |voornaam=Al |tijdschrift=Dr. Dobbs |datum=10 december 2002 |titel=The Practical Application of Prolog |url=http://www.drdobbs.com/parallel/the-practical-application-of-prolog/184405220}} Oorspronkelijk in ''AI Expert'', 1993.</ref> Ongeveer in dezelfde periode, echter, publiceerden onderzoekers die bij de ontwikkeling van logisch programmeren betrokken waren, een artikel waarin zij stelden dat dit paradigma "ondanks de theoretische voordelen" niet doorgebroken was: van de vijfhonderd applicaties op de publieke lijst "Prolog-1000" werden er slechts enkele door meer dan 100 mensen gebruikt.<ref><!--waarom is er geen "citeer congres"? -->Zoltan Somogyi, Fergus Henderson, Thomas Conway en Richard O'Keefe (1995). [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.39.3104 Logic Programming for the Real World]. ILPS'95 Postconference Workshop on Visions for the Future of Logic Programming.</ref>
Hoewel het gebruik van Prolog zich in eerste instantie beperkte tot de [[Academie|academische wereld]], werden de implementaties gaandeweg stabiel genoeg zodat de taal in commercieel gebruik kon worden genomen. Begin jaren '90 had Prolog een "stabiele niche" verworven op de markt voor programmeertalen.<ref>{{Citeer tijdschrift |Van Roy |Peter |datum=1994 |url=http://www.sciencedirect.com/science/article/pii/0743106694900310 |titel=1983–1993: The wonder years of sequential Prolog implementation |tijdschrift=Journal of Logic Programming |jaargang=19 |pp=385–441}}</ref>
Tot de gebruikers in de industriële wereld behoorden [[Boeing]], dat met behulp van een [[expertsysteem]] handleidingen voor de assemblage van connectors met lijsten van benodigde gereedschappen, materialen, onderdelen en procedures samenstelde. Het ''National Center for Atmospheric Research'' in de [[Verenigde Staten|VS]] gebruikte op Prolog gebaseerde software om kortetermijnweerberichten te genereren, in [[Boedapest]] hield een Prologapplicatie de concentraties van vervuilende stoffen in de gaten en adviseert over de te gebruiken extra filters als niveaus worden overstegen, en in het [[Verenigd Koninkrijk]] adviseerde een toepassing het personeel van een waterleidingbedrijf over optimaal gebruik van pompen, zodat de druk in het waterleidingsysteem gelijk verdeeld is.<ref>{{Citeer nieuws |achternaam=Roth |voornaam=Al |tijdschrift=Dr. Dobbs |datum=10 december 2002 |titel=The Practical Application of Prolog |url=http://www.drdobbs.com/parallel/the-practical-application-of-prolog/184405220}} Oorspronkelijk in ''AI Expert'', 1993.</ref>
 
Ongeveer in dezelfde periode, echter, publiceerden onderzoekers die bij de ontwikkeling van logisch programmeren betrokken waren, een artikel waarin zij stelden dat dit paradigma "ondanks de theoretische voordelen" niet doorgebroken was: van de vijfhonderd applicaties op de publieke lijst "Prolog-1000" werden er slechts enkele door meer dan 100 mensen gebruikt.<ref><!--waarom is er geen "citeer congres"? -->Zoltan Somogyi, Fergus Henderson, Thomas Conway en Richard O'Keefe (1995). [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.39.3104 Logic Programming for the Real World]. ILPS'95 Postconference Workshop on Visions for the Future of Logic Programming.</ref>
 
De krachtige ''inference engine'', de mogelijkheid tot ''[[backtracking]]'' ("terugkrabbelen") en de eenvoud en flexibiliteit van de taal maken haar zeer geschikt voor ''Rapid Prototyping'', vooral omdat ingewikkelde regels relatief simpel kunnen worden uitgedrukt. Dit maakt haar ook zeer geschikt om taaluitingen, natuurlijk of anderszins te interpreteren en voort te brengen. Prolog wordt dan ook vaak voor dit doel ingezet. Dat de taal al beschikt over mechanismen om [[syntaxis (informatica)|syntaxis]] te definiëren, zoals ''Definite Clause Grammars'', maakt haar uitermate geschikt voor dit doel. Het [[Internationaal ruimtestation ISS|internationale ruimtestation ISS]] heeft ''Clarissa'',<ref>[http://www.sics.se/isl/sicstuswww/site/customers.html SICStus]</ref> een in Prolog geschreven ''"fully voice operated procedure browser"'' om de astronauten te ondersteunen in de duizenden procedures die vereist zijn om het ruimtestation draaiend te houden.
Regel 60 ⟶ 57:
 
== Invloed ==
De toepassing van formele logica om kennis te modelleren heeft inmiddels vele verschillende talen en applicaties opgeleverd, die echter vaak tot de academische en industriële wereld beperkt blijven. De ''[[Warren Abstract Machine]]'' echter, was als een van de eerste [[virtuele machine]]s een innovatie die veel navolging kreeg, onder andere in de [[Java Virtual Machine]].{{bron?}}
 
De technieken die voor Prolog zijn ontwikkeld zijn tegenwoordig tamelijk wijd verspreid en beperken zich niet tot [[predicatenlogica|eerste orde]], maar richten zich ook op [[wiskundige logica|tweedeorde]]logica en ''automated theorem proving'', het bewijzen van [[Stelling (wiskunde)|wiskundige stellingen]] door middel van [[software]]. Talen zoals [[Gödel (programeertaal)|Gödel]] implementeren dan ook vrij veel functionaliteit van Prolog.
 
In de jaren 80 van de vorige eeuw bracht [[Borland (softwarebedrijf)|Borland]] ''Turbo Prolog'' op de markt, dat nog steeds onder de naam ''Visual Prolog'' wordt gebruikt. Deze taal, die veel meer op hobbyisten dan op professionele gebruikers is gericht,{{Bron?||2014|12|24}} verschilt echter sterk van andere dialecten. Het belangrijkste verschil is dat types in ''Turbo Prolog'' statisch worden geverifieerd en dus moeten worden gedeclareerd.