Hvad er logisk programmering? (med billeder)
Logisk programmering er en type computerprogrammering, hvor programmereren skal give computeren instruktioner om, hvordan man træffer beslutninger ved hjælp af matematisk logik, såsom brugen af en matematisk algoritme. Computerprogrammer består af kode, der fortæller computeren, hvad de skal gøre. Til sidst vil computeren imidlertid løbe ind i et tilfælde, hvor den skal tage en beslutning om, hvordan man skal gå videre, og uden nogen information om, hvordan man gør dette, kunne den ikke udføre sin nuværende funktion. Logisk programmering beskæftiger sig med disse typer beslutninger og giver instruktioner til computeren, så den kan tage en "logisk" beslutning om, hvordan man bedst reagerer på en bestemt situation. For at logisk programmering skal fungere, er programmereren, der skriver koden, nødt til at sikre, at hendes udsagn giver mening og er sandt, og er således logiske, og et computerprogram, der er kendt som en teorem-prover, er påkrævet for at tage beslutninger baseret på udsagnene, den møder i programmørens kode.
En teorem-prover henviser til et computerprogram, der er designet til at løse matematiske udsagn kendt som teoremer. Teoremer er udsagn, der viser sig at være sandt baseret på tidligere udsagn. I logisk programmering fungerer teorem-prover sammen med udsagn, der er oprettet af computerprogrammøren for at nå frem til konklusioner. Hvis koden for eksempel angiver, at A er lig med B, og B er lig med C, vil teorem-prover gøre den logiske konklusion, at A skal være lig med C. Denne proces er anderledes end, at programmereren simpelthen fortæller computeren i kode, at A er lig med C, fordi computerprogrammet skal drage denne konklusion ved hjælp af teorem-prover og programmørens originale udsagn i koden.
I teorien, for at logisk programmering skal fungere, behøver programmereren kun at sikre, at hendes udsagn er korrekte, og skaberen af teorem-prover skal sikre, at programmet kan læse udsagn og træffe de mest effektive beslutninger baseret på dem. Evnen til at træffe en effektiv beslutning omtales som en computer, der fungerer "logisk". I virkeligheden overlapper de to arbejdsområder hinanden, og de, der udfører logisk programmering, er ofte nødt til at ændre og manipulere koden baseret på, hvordan teorem-prover fungerer for at opnå de resultater, de ønsker. Det er muligvis ikke nok at sætte nøjagtige udsagn om, hvordan man træffer en bestemt beslutning, til at få computeren til at udføre den rigtige funktion, og programmereren bliver nødt til at teste hendes kode og foretage justeringer i overensstemmelse hermed.
For at logisk programmering kan fungere, er den også afhængig af bagudgående resonnement. I baglæns begrundelse kommer programmet til konklusioner ved at se på et sæt data og arbejde ud fra almindeligt kendte udsagn for at nå mere avancerede konklusioner. Programmet ved muligvis, at to oplysninger er korrekte, og det vil udlede, at da disse to oplysninger er rigtige, betyder det, at et tredje stykke information også er sandt. Den fortsætter denne proces, indtil den når en logisk konklusion baseret på de informationer, den har givet. På grund af den måde, det fungerer, er logisk programmering bygget på et deklarativt sprog, hvilket betyder, at programmet fortæller computeren, hvad det skal gøre, men overlader det til teorem-prover at bestemme den mest logiske eller effektive måde at udføre den ønskede procedure.