Vad är logisk programmering? (med bilder)
Logisk programmering är en typ av datorprogrammering där programmeraren måste ge datorn instruktioner om hur man fattar beslut med matematisk logik, till exempel användningen av en matematisk algoritm. Datorprogram består av kod som berättar datorn vad de ska göra. Så småningom kommer datorn dock att stöta på en instans där den måste fatta ett beslut om hur man ska gå vidare och utan någon information om hur man gör detta kunde den inte slutföra sin nuvarande funktion. Logisk programmering handlar om dessa typer av beslut och ger instruktioner till datorn så att den kan fatta ett "logiskt" beslut om hur man bäst ska reagera på en viss situation. För att logisk programmering ska fungera måste programmeraren som skriver koden säkerställa att hennes uttalanden är vettiga och är sanna, och därmed är logiska, och ett datorprogram som kallas en teorem-prover krävs för att fatta beslut baserat på de uttalanden som det möter i programmerarens koda.
En teorem-prover hänvisar till ett datorprogram som har utformats för att lösa matematiska påståenden kända som teorem. Teorem är uttalanden som visar sig vara sanna baserat på tidigare uttalanden. Vid logisk programmering arbetar teorem-prover tillsammans med de uttalanden som skapats av dataprogrammeraren för att nå slutsatser. Om till exempel koden säger att A är lika med B och B är lika med C kommer satsen-prover att göra den logiska slutsatsen att A måste vara lika med C. Den här processen skiljer sig från att programmeraren bara säger datorn i kod som A är lika med C eftersom datorprogrammet måste dra denna slutsats med hjälp av teorem-prover och programmerarens ursprungliga uttalanden i koden.
I teorin, för att logisk programmering ska fungera, behöver programmeraren bara se till att hennes uttalanden är korrekta och skaparen av teorem-prover bör se till att programmet kan läsa uttalanden och fatta de mest effektiva besluten baserade på dem. Möjligheten att fatta ett effektivt beslut kallas en dator som fungerar "logiskt". I verkligheten överlappar de två arbetsområdena, och de som utför logisk programmering måste ofta ändra och manipulera koden baserat på hur teorem-prover fungerar för att uppnå de resultat de vill ha. Att helt enkelt sätta in exakta uttalanden om hur man fattar ett visst beslut kanske inte räcker för att få datorn att utföra rätt funktion, och programmeraren måste testa sin kod och göra justeringar i enlighet därmed.
För att logisk programmering ska fungera, förlitar den sig också på bakåt resonemang. I bakåt resonemang kommer programmet till slutsatser genom att titta på en uppsättning data och arbeta utifrån allmänt kända uttalanden för att nå mer avancerade slutsatser. Programmet kanske vet att två informationsstycken är sanna, och det kommer att slutsatsen att eftersom dessa två informationsstycken är sanna, betyder det att en tredje informationsdel också är sant. Den fortsätter denna process tills den når en logisk slutsats baserat på den information som den ges. På grund av hur det fungerar bygger logisk programmering på ett deklarativt representationsspråk, vilket innebär att programmet berättar datorn vad den ska göra, men lämnar det upp till teorem-prover för att bestämma det mest logiska eller effektiva sättet att utföra den begärda proceduren.