Prolog vs Lisp
Prolog och Lisp är två av de mest populära AI (Artificiella Intelligens) datorprogrammeringsspråk idag. De är byggda med två olika programmeringsparadigmer. Prolog är ett deklarativt språk, medan Lisp är ett funktionellt språk. Båda används för olika AI-problem, men Prolog används mest för logiska och resonemangsproblem, medan Lisp används för problem med snabba prototypbehov.
Prolog
Prolog är ett AI programmeringsspråk. Det tillhör familjen logiska programmeringsspråk. Prolog är ett deklarativt språk där beräkningar överförs genom att springa frågor över relationerna (som representerar programlogik), vilka definieras som regler och faktum. Prolog är utvecklat 1970 och är ett av de äldsta logikprogrammeringsspråk och ett av de mest populära AI-programmeringsspråken idag (tillsammans med Lisp). Det är ett fritt språk, men många kommersiella varianter är tillgängliga. Den användes först för naturlig språkbehandling, men nu har den använts för olika uppgifter, såsom expertsystem, automatiserade telefonsvarare, spel och avancerade styrsystem. Prolog har bara en datatyp som kallas termen. En term kan vara en atom, ett tal, en variabel eller en sammansatt term. Numren kan vara flytande eller heltal. Prolog stöder listor och strängar som samling av föremål. Prolog definierar relationer med klausuler. Klausuler kan vara antingen regler eller fakta. Prolog gör det möjligt att genomföra iteration grundligt dess rekursiva predikat.
Läspa
Lisp är en familj av datorprogrammeringsspråk. Och de mest kända Lisp dialekterna som används för allmän programmering idag är Common Lisp and Scheme. Namnet LISP kommer från "LISt Processing" och som det är antyt är Lisps stora datastruktur den länkade listan. Faktum är att hela källan är skriven med hjälp av listor (med prefixnotation) eller mer korrekt parenteserade listor (kallat s-uttryck). Exempelvis skrivs ett funktionsanrop som (f a1 a2 a3), vilket betyder att funktion f kallas med a1, a2 och a3 som inmatningsargument för funktionen. Därför kallas det ett expressionsorienterat språk där alla data och kod skrivs som uttryck (det finns ingen skillnad mellan uttryck och uttalanden i Lisp). Denna snygga funktion är mycket speciell för Lisp, där den kan användas för att utöka språket till problemet vid hand genom att skriva användbara makron. Även om svansrekursion används av programmerare för att uttrycka slingor, innehåller alla ofta sedda Lisp-dialekter kontrollstrukturer som slinga. Dessutom har Common Lisp och Scheme kartkarta och karta som är exempel på funktioner som ger loopingfunktionalitet genom att successivt tillämpa funktionen på alla dess element och sedan samla in resultaten i en lista.
Vad är skillnaden mellan Prolog och Lisp?
Även om Prolog och Lisp är två av de mest populära AI-programmeringsspråk, har de olika skillnader. Lisp är ett funktionellt språk, medan Prolog är en logisk programmering och deklarativa språk. Lisp är väldigt flexibel tack vare sina snabba prototyper och makrofunktioner, så att det faktiskt tillåter att språket utvidgas till att passa problemet vid handen. På områdena AI, grafik och användargränssnitt har Lisp använts i stor utsträckning på grund av denna snabba prototypningsförmåga. Men på grund av sin inbyggda logiska programmerings förmåga är Prolog idealisk för AI-problem med symboliska resonemang, databas och språkanalysprogram. Valet av varandra över det andra beror helt på vilken typ av AI-problem som behöver lösas.