Prolog: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
k WPCleaner v1.38 - Opgelost met behulp van WP:CW (Code 081: Dubbele reference-tag)
Maiella (overleg | bijdragen)
lf [Algol]
Regel 21:
 
== Ontwikkeling ==
Prolog werd oorspronkelijk in 1971-72<ref name="birth">{{Citeer tijdschrift |1=Alain |2=Colmerauer |3=Philippe |4=Roussel |datum=1993 |url=http://alain.colmerauer.free.fr/alcol/ArchivesPublications/HistoireProlog/19november92.pdf |titel=The birth of Prolog |tijdschrift=ACM SIGPLAN Notices |jaargang=28 |nummer=3 |pp=37–52 |doi=10.1145/154766.155362}}</ref><ref>{{Citeer tijdschrift |1=Robert A. |2=Kowalski |datum=1988 |url=http://www.doc.ic.ac.uk/~rak/papers/the%20early%20years.pdf |titel=The early years of logic programming |tijdschrift=Communications of the ACM |jaargang=31 |nummer=1 |pp=38–43}}</ref> ontworpen door [[Alain Colmerauer]] en zijn vakgroep aan de [[Universiteit van Marseille]] ([[Frankrijk]]). Het was de eerste implementatie van de ideeën van [[Robert Kowalski]] over het gebruik van [[Horn-clausule]]s als basis voor een programmeertaal. De eerste versie van de nieuwe taal werd door Colmerauers collega Philippe Roussel geïmplementeerd in [[ALGOLAlgol (programmeertaal)|Algol]], in het najaar van 1972; diens vrouw bedacht de naam van de nieuwe taal. De eerste applicatie was een basaal dialoogsysteem dat met een gebruiker in het Frans kon converseren. In 1973 kreeg Colmerauers groep genoeg geld toegewezen om een tweede implementatie te ontwikkelen: een [[interpreter]], geschreven in [[Fortran]].<ref name="birth"/>
 
Een volgende mijlpaal werd bereikt met een Prologsysteem dat op een [[Digital Equipment Corporation|DEC]] [[PDP-10]] van de [[Universiteit van Edinburgh]] draaide. Met name [[David H.D. Warren]] speelde hierbij een belangrijke rol met de ontwikkeling van de [[Warren Abstract Machine]]. Deze versie van Prolog bood vele optimalisaties en uitbreidingen en was de eerste die kon worden gecompileerd naar DEC-10-[[machinetaal]]. ''Edinburgh Prolog'' geldt in velerlei opzicht nog steeds als richtinggevend. In 1995 werd Prolog door de [[Internationale Organisatie voor Standaardisatie|ISO]] gestandaardiseerd, waarbij het Edinburgh-[[I/O]]-systeem en vele predicaten werden vervangen. Dit leidde tot enige kritiek<ref name="Ransar">[http://pauillac.inria.fr/~deransar/prolog/overview.html Prolog overview, de Ransar]</ref> en heeft ertoe geleid dat vele moderne implementaties beide versies ondersteunen.
Regel 31:
{{Zie hoofdartikel|Warren Abstract Machine}}
 
In 1983 ontwierp [[David H. D. Warren]] een [[virtuele machine]] gericht op de taal Prolog: een [[instructieset]] die Prolog-compilers kunnen gebruiken als intermediair tussen de semantiek van Prolog, gebaseerd op het doorzoeken van een verzameling mogelijke oplossingen voor een logisch probleem, en de werking van computerprocessors. WAM-programma's kunnen vervolgens direct uitgevoerd worden door een [[interpreter]], of verder vertaald naar machinecode. Warrens werk maakte als eerste de uitvoering van logische programma's snel genoeg voor algemeen gebruik.<ref>Russell en Norvig (2003:290–292).</ref>
 
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.{{Bron?||2015|01|14}}