Prolog

Prolog
programmeringsspråk
ForfatterAlain Colmerauer
Opprinnelsesdato1972
Brukgenerell språkbruk
ParadigmerLogisk programmering
Skrivingdet er ingen datatyper
SpråkspesifikasjonerISO / IEC 13211-1 (1995)
Vanlige utvidelser.pl .pro .P
Påvirket avPlanlegger

Prolog (sammentrekning av den franske PRO grammation en LOG ique ) er et programmeringsspråk som tar i bruk det logiske programmeringsparadigmet .

Det ble unnfanget av Robert Kowalski (teoretisk aspekt), Marten Van Emdem (eksperimentell demonstrasjon) og implementert av Alain Colmerauer på syttitallet , og utgjorde et forsøk på å bygge et programmeringsspråk som ville tillate uttrykk for problemet i en logisk form i stedet for oversettelse av en løsningsalgoritme i form av instruksjoner som skal utføres av maskinen. Prologs nåværende implementering skyldes i stor grad David HD Warrens effektive koding , implementert via hans Warren Abstract Machine ( 1983 ).

Prolog brukes i mange kunstig intelligens -programmer , dens syntaks og semantikk er veldig enkel og tydelig (det primitive formålet var å gi et arbeidsverktøy til lingvister uten datakunnskap).

Prolog er basert på beregning av predikater (nøyaktig beregning av førsteordens predikater); imidlertid er syntaksen begrenset til formler kalt Horn-setninger som er disjunksjoner av førsteordens bokstaver universelt kvantifisert med høyst én positiv bokstav.

Utførelsen av et Prolog - program kan sammenlignes med beviset for et teorem ved hjelp av inferensregelen kalt oppløsning (introdusert av Robinson i 1965 ). Kjernekonseptene er forening, halerekursjon og tilbakesporing .

Mange språk, for eksempel Datalog eller AnsProlog , er basert på Prolog.

Syntaks

I Prolog uttrykkes logikken til programmet i form av relasjoner og beregningsaktivitetene utløses av en spørring knyttet til disse relasjonene.

Datatyper

Det generiske elementet i Prolog kalles et begrep . Begrepene kan være konstanter ( atomer eller tall ), variabler eller sammensatte begreper .

Spesielle tilfeller av sammensatte termer:

Regler og fakta

En regel har formen:

Hode : - Kropp .

som lyder: "Hodet er sant hvis kroppen er sant." (Merk at regelen slutter med et punktum.)

Et enkelt begrep (til og med sammensatt), uten tegnet :-, kalles et faktum . Fakta utgjør kroppslige regler, som automatisk anses å være sanne. Et saklig eksempel er:

katt ( Thomas ).

Utover den strengt tiltenkte bruken av teorien, tilbyr Prolog også spesielle predikater som tjener til input/output og andre hjelpeaktiviteter. Viser f.eks write/1. et begrep på skjermen.

Eksempelprogram

Hei Verden!

Følgende eksempel skriver ut teksten " Hello world ".

? - skriv ( 'Hello World' ), nl .

Permutasjoner

Kraften til Prolog ligger imidlertid ikke i input/output-administrasjonen, men i muligheten for ganske enkelt å representere komplekse konsepter, for eksempel kombinatoriske algoritmer . Her er et program som beregner alle mulige permutasjoner av et gitt ord som en liste over tegn:

permutasjon ([], []). permutasjon ( Xs , [ Z | Zs ]) : - velg ( Z , Xs , Ys ), permutasjon ( Ys , Zs ). velg ( X , [ X | Xs ], Xs ). velg ( Y , [ X | Xs ], [ X | Ys ]) : - velg ( Y , Xs , Ys ).

Meta-tolkning

I Prolog er det enkelt å skrive tolker og kompilatorer. For eksempel består en Prolog-metatolk (dvs. en Prolog-tolk skrevet i Prolog) av bare 3 linjer med kode:

vanilje ( sant ). vanilje (( A , B )): - vanilje ( A ), vanilje ( B ). vanilje ( X ): - X \ == sant , klausul ( X , B ), vanilje ( B ).

Implementeringer

Bibliografi

  • De logiske grunnlagene for Prolog , i LIST , år 5, nr. 8/9, Roma, Edicomp, 15. september / 15. oktober 1987, s. 28-30, OCLC  955780660 .
  • Prolog-hovedverktøyet , i kunstig intelligens , n. 1, Milan, Arcadia, 1988, s. 8-12.
  • Patrick Blackburn, Johan Bos , Kristina Striegnitz , Lær Prolog nå! , College Publications, 2006, ISBN 1-904987-17-6
  • JA Robinson, A Machine-Oriented Logic Based on the Resolution Principle , i Journal of the Association for Computing Machinery , 12 (1), januar 1965.

Relaterte elementer

Andre prosjekter

  • Samarbeid på Wikibooks Wikibooks inneholder tekster eller manualer på Prolog

Eksterne lenker