Skillnaden mellan Prolog och Lisp

Skillnaden mellan Prolog och Lisp
Skillnaden mellan Prolog och Lisp

Video: Skillnaden mellan Prolog och Lisp

Video: Skillnaden mellan Prolog och Lisp
Video: Lisp, The Quantum Programmer's Choice - Computerphile 2024, Juli
Anonim

Prolog vs Lisp

Prolog och Lisp är två av de mest populära AI (Artificial Intelligence) datorprogrammeringsspråken idag. De är byggda med två olika programmeringsparadigm. 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 logik- och resonemangsproblem, medan Lisp används för problem med snabba prototypbehov.

Prolog

Prolog är ett AI-programmeringsspråk. Det tillhör familjen av logiska programmeringsspråk. Prolog är ett deklarativt språk, där beräkningar överförs genom att köra frågor över relationerna (som representerar programlogik), som definieras som regler och fakta. Prolog, som utvecklades 1970, är ett av de äldsta logiska programmeringsspråken 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 finns tillgängliga. Det användes först för naturlig språkbehandling, men nu används det för olika uppgifter som expertsystem, automatiserade svarssystem, spel och avancerade kontrollsystem. Prolog har bara en datatyp som kallas termen. En term kan vara en atom, ett tal, en variabel eller en sammansatt term. Tal kan vara flytande eller heltal. Prolog stöder listor och sträng som samling av objekt. Prolog definierar relationer med hjälp av satser. Klausuler kan vara antingen regler eller fakta. Prolog tillåter iteration genom dess rekursiva predikat.

Lisp

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 och Scheme. Namnet LISP kommer från "LISt Processing" och som det antyder är Lisps huvudsakliga datastruktur den länkade listan. Faktum är att hela källan är skriven med listor (med prefixnotation), eller mer korrekt parenteserade listor (kallade s-uttryck). Till exempel skrivs ett funktionsanrop som (f a1 a2 a3), vilket betyder att funktion f anropas med a1, a2 och a3 som inmatningsargument för funktionen. Därför kallas det ett uttrycksorienterat språk, där all data och kod skrivs som uttryck (det finns ingen skillnad mellan uttryck och påståenden i Lisp). Denna trevliga funktion är väldigt speciell för Lisp, där den kan användas för att utöka språket till problemet genom att skriva användbara makron. Även om svansrekursion används av programmerare för att uttrycka loopar, inkluderar alla ofta sedda Lisp-dialekter kontrollstrukturer som loop. Dessutom har Common Lisp och schema mapcar och map som är exempel på funktioner som ger looping-funktionalitet genom att applicera funktionen successivt på alla dess element och sedan samlar 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åken, har de olika skillnader. Lisp är ett funktionellt språk, medan Prolog är ett logiskt programmerings- och deklarativt språk. Lisp är mycket flexibel på grund av dess snabba prototyper och makrofunktioner, så det tillåter faktiskt att utöka språket för att passa problemet. Inom områdena AI, grafik och användargränssnitt har Lisp använts flitigt på grund av denna snabba prototypförmåga. Men på grund av dess inbyggda logiska programmeringsförmåga är Prolog idealisk för AI-problem med symboliska resonemang, databas- och språkanalysapplikationer. Valet av det ena framför det andra beror helt på vilken typ av AI-problem som måste lösas.

Rekommenderad: