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 hurtige prototype behov.
Prolog
Prolog er et AI-programmeringssprog. Det hører til familien af logiske programmeringssprog. Prolog er et deklarativt sprog, hvor beregninger overføres ved at køre forespørgsler over relationer (som repræsenterer programlogik), som er defineret som regler og faktum. 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 er det brugt til forskellige opgaver såsom ekspertsystemer, automatiserede besvaringssystemer, spil og avancerede kontrolsystemer. Prolog har kun én datatype kaldet udtrykket. En betegnelse kan være et atom, tal, variabel eller et sammensat udtryk. Tal kan være float eller heltal. Prolog understøtter lister og streng som samling af varer. Prolog definerer forhold ved hjælp af klausuler. Bestemmelser kan enten være regler eller fakta. Prolog tillader iteration grundigt sine rekursive predikater.
lisp
Lisp er en familie af computerprogrammeringssprog. Og de mest berømte Lisp-dialekter, der bruges til programmering til generelle formål i dag, er Common Lisp og Scheme. Navnet LISP kommer fra “LISt-behandling”, 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 parentesiserede lister (kaldet s-udtryk). For eksempel skrives et funktionsopkald som (f a1 a2 a3), hvilket betyder, at funktion f kaldes ved hjælp af a1, a2 og a3 som input-argumenter for funktionen. Derfor kaldes det et udtrykorienteret sprog, hvor alle data og kode er skrevet som udtryk (der er ingen forskel mellem udtryk og udsagn i Lisp). Denne dejlige 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 programmerere til at udtrykke løkker, inkluderer alle ofte set Lisp-dialekter kontrolstrukturer som loop. Desuden har Common Lisp og skema kortbil og kort, der er eksempler på funktioner, der giver loopingfunktionalitet ved at anvende funktionen successivt på alle dens elementer og derefter samle resultaterne ind 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 programmeringssprog og deklarative sprog. Lisp er meget fleksibel på grund af dens hurtige prototyper og makrofunktioner, så det faktisk tillader at udvide sproget, så det passer til det aktuelle problem. Inden for områderne AI, grafik og brugergrænseflader er Lisp blevet brugt i vid udstrækning på grund af denne hurtige prototypeevne. På grund af dets indbyggede logiske programmeringsevner er Prolog imidlertid ideel til AI-problemer med symbolsk ræsonnement, database og sprogopdelt applikationer. Valget af hinanden afhænger fuldstændigt af den type AI-problem, der skal løses.