Prolog (programmeringssprog)

Fra Wikipedia, den frie encyklopædi
Spring til navigation Spring til søgning
Disambig bordered fade.svg For alternative betydninger, se Prolog. (Se også artikler, som begynder med Prolog)

Prolog (PROgramming in LOGic) er et deklarativt og logikbaseret programmeringssprog .

Programmering i Prolog er programmering i logik. Man skriver programmer ved at opstille en sammenhæng af logiske udsagn. Dette medfører et højere abstraktionsniveau i den forstand, at man som programmør bevæger sig væk fra, hvordan man løser et givet problem i de mere maskinnære programmeringssprog til, hvad man gør for at løse det – og dette udtrykt i logik.

Et eksempel på et prolog-program, der kan udtrykke en familie-relation, kan være:

mand(harald).
mand(gorm).
kvinde(thyra).
son_af(harald, gorm).
son_af(harald, thyra).
far(X,Y) :- son_af(Y,X), mand(X).

Dette læses, at først har vi en række fakta, fx Harald og Gorm er mænd, mens Thyra deklareres som kvinde. Så defineres et prædikat, søn af (son_af), som kan udtrykke, at Harald er søn af Gorm.

Nu kan vi bygge videre på programmet og skabe en far-relation, der skal læses sådan, at far gælder for X og Y, hvis X er en mand, og der er et son_af-relation mellem Y og X.

Nu kan prolog-fortolkeren spørges,

>far(gorm, harald)?

Variablerne X instantieres til gorm og Y til harald, hvorefter der fortsættes til son_af(harald, gorm), hvilket også lykkedes. Derefter prøves mand(gorm), hvilket lykkedes.Der svares yes!

Nu prøver vi om

>far(thyra, harald)?

kan lykkes!

Først instantieres variablerne og herefter spørges, om Harald er son_af Thyra, hvilket lykkedes, men da vi kommer til mand(X), så kan vi ikke finde mand(thyra) i databasen, og fortolkeren returnerer et no.

Familieeksemplet kan naturligvis udbygges i det uendelige.

Se også[redigér | redigér wikikode]

Ekstern henvisning[redigér | redigér wikikode]

ProgrammeringStub
Denne artikel om datalogi eller et datalogi-relateret emne er kun påbegyndt. Hvis du ved mere om emnet, kan du hjælpe Wikipedia ved at udvide den.