Spring til indhold

Prolog (programmeringssprog)

Fra Wikipedia, den frie encyklopædi
Version fra 3. jan. 2007, 02:12 af Thijs!bot (diskussion | bidrag) Thijs!bot (diskussion | bidrag) (robot Tilføjer: ca Fjerner: pl Ændrer: bg, jbo)

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.

Spire
Denne artikel er en spire som bør udbygges. Du er velkommen til at hjælpe Wikipedia ved at udvide den.