Prolog vs Lisp
Prolog og Lisp er to af de mest populære AI (Artificial Intelligence) computerprogrammeringssprog i dag. De er bygget med to forskellige programmeringsparadigmer. Prolog er et deklarativt sprog, mens Lisp er et funktionelt sprog. Begge bruges til forskellige AI-problemer, men Prolog bruges mest til logik- og ræsonnementproblemer, mens Lisp bruges til problemer med behov for hurtige prototyper.
Prolog
Prolog er et AI-programmeringssprog. Det tilhører familien af logiske programmeringssprog. Prolog er et deklarativt sprog, hvor beregninger overføres ved at køre forespørgsler over relationerne (som repræsenterer programlogik), som er defineret som regler og fakta. Prolog blev udviklet i 1970 og er et af de ældste logiske programmeringssprog og et af de mest populære AI-programmeringssprog i dag (sammen med Lisp). Det er et gratis sprog, men mange kommercielle varianter er tilgængelige. Det blev først brugt til naturlig sprogbehandling, men nu bruges det til forskellige opgaver såsom ekspertsystemer, automatiske svarsystemer, spil og avancerede kontrolsystemer. Prolog har kun én datatype kaldet termen. Et led kan være et atom, tal, variabel eller et sammensat led. Tal kan være flydende eller heltal. Prolog understøtter lister og streng som samling af elementer. Prolog definerer relationer ved hjælp af klausuler. Klausuler kan enten være regler eller fakta. Prolog tillader iteration gennem dets rekursive prædikater.
Lisp
Lisp er en familie af computerprogrammeringssprog. Og de mest berømte Lisp-dialekter, der bruges til generel programmering i dag, er Common Lisp og Scheme. Navnet LISP kommer fra "LISt Processing", og som det antyder, er Lisps vigtigste datastruktur den sammenkædede liste. Faktisk er hele kilden skrevet ved hjælp af lister (ved hjælp af præfiksnotation), eller mere korrekt parenteserede lister (kaldet s-udtryk). For eksempel skrives et funktionskald som (f a1 a2 a3), hvilket betyder, at funktion f kaldes ved at bruge a1, a2 og a3 som input-argumenter for funktionen. Derfor kaldes det et udtryksorienteret sprog, hvor al data og kode er skrevet som udtryk (der er ingen skelnen mellem udtryk og udsagn i Lisp). Denne fine funktion er meget speciel for Lisp, hvor den kunne bruges til at udvide sproget til det aktuelle problem ved at skrive nyttige makroer. Selvom hale-rekursion bruges af programmører til at udtrykke loops, inkluderer alle ofte sete Lisp-dialekter kontrolstrukturer som loop. Desuden har Common Lisp og skema mapcar og map, der er eksempler på funktioner, som giver looping-funktionalitet ved at anvende funktionen successivt på alle dens elementer og derefter samle resultaterne på en liste.
Hvad er forskellen mellem Prolog og Lisp?
Selvom Prolog og Lisp er to af de mest populære AI-programmeringssprog, har de forskellige forskelle. Lisp er et funktionelt sprog, mens Prolog er et logisk programmerings- og deklarative sprog. Lisp er meget fleksibel på grund af dens hurtige prototyping og makrofunktioner, så det giver faktisk mulighed for at udvide sproget, så det passer til det aktuelle problem. Inden for områderne AI, grafik og brugergrænseflader er Lisp blevet brugt flittigt på grund af denne hurtige prototyping-evne. Men på grund af dens indbyggede logiske programmeringsevner er Prolog ideel til AI-problemer med symbolsk ræsonnement, database- og sprogparsing-applikationer. Valget af det ene frem for det andet afhænger fuldstændig af typen af AI-problem, der skal løses.