Prolog: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
→Warren Abstract Machine: machine-afhankelijkheden: geen referentie, weg ermee |
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]].
▲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>
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]].
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.
|