Prolog vs Lisp
Prolog i Lisp su dva najpopularnija AI (vještačka inteligencija) kompjuterskih programskih jezika danas. Izgrađeni su s dvije različite paradigme programiranja. Prolog je deklarativni jezik, dok je Lisp funkcionalni jezik. Oba se koriste za različite AI probleme, ali Prolog se najviše koristi za probleme logike i zaključivanja, dok se Lisp koristi za probleme sa potrebama brze izrade prototipa.
Prolog
Prolog je AI programski jezik. Pripada porodici logičkih programskih jezika. Prolog je deklarativni jezik, u kojem se izračuni prenose pokretanjem upita nad relacijama (koje predstavljaju programsku logiku), koje su definirane kao pravila i činjenice. Razvijen 1970. godine, prolog je jedan od najstarijih logičkih programskih jezika i jedan od najpopularnijih AI programskih jezika danas (zajedno sa Lispom). To je besplatan jezik, ali su dostupne mnoge komercijalne varijante. Prvo se koristio za obradu prirodnog jezika, ali sada se koristi za različite zadatke kao što su ekspertni sistemi, automatizovani sistemi za javljanje, igre i napredni kontrolni sistemi. Prolog ima samo jedan tip podataka koji se zove termin. Pojam može biti atom, broj, varijabla ili složeni termin. Brojevi mogu biti s plutajućim ili cijelim brojevima. Prolog podržava liste i string kao kolekciju stavki. Prolog definira odnose pomoću klauzula. Klauzule mogu biti ili pravila ili činjenice. Prolog dozvoljava iteraciju kroz svoje rekurzivne predikate.
Lisp
Lisp je porodica kompjuterskih programskih jezika. A najpoznatiji Lisp dijalekti koji se danas koriste za programiranje opće namjene su Common Lisp i Scheme. Ime LISP dolazi od "LISt Processing" i kao što nagovještava, glavna struktura podataka Lisp-a je povezana lista. U stvari, cijeli izvor je napisan korištenjem lista (koristeći prefiksnu notaciju), ili tačnije liste u zagradama (zvane s-izrazi). Na primjer, poziv funkcije je napisan kao (f a1 a2 a3), što znači da se funkcija f poziva koristeći a1, a2 i a3 kao ulazne argumente za funkciju. Stoga se naziva jezikom orijentiranim na izraze, gdje su svi podaci i kod napisani kao izrazi (nema razlike između izraza i iskaza u Lisp-u). Ova lijepa karakteristika je vrlo posebna za Lisp, gdje bi se mogla koristiti za proširenje jezika na problem koji je pri ruci pisanjem korisnih makroa. Iako programeri koriste repnu rekurziju za izražavanje petlji, svi često viđeni Lisp dijalekti uključuju kontrolne strukture poput petlje. Nadalje, Common Lisp i shema imaju mapcar i mapu koji su primjeri funkcija, koje pružaju funkcionalnost petlje primjenom funkcije sukcesivno na sve njene elemente i zatim prikuplja rezultate u listu.
Koja je razlika između Prologa i Lisp-a?
Iako su Prolog i Lisp dva od najpopularnijih AI programskih jezika, oni imaju različite razlike. Lisp je funkcionalni jezik, dok je Prolog logički programski i deklarativni jezici. Lisp je vrlo fleksibilan zbog svoje brze izrade prototipa i makro karakteristika, tako da zapravo omogućava proširenje jezika kako bi odgovarao problemu. U oblastima veštačke inteligencije, grafike i korisničkih interfejsa, Lisp se intenzivno koristi zbog ove sposobnosti brzog prototipa. Međutim, zbog svojih ugrađenih sposobnosti logičkog programiranja, Prolog je idealan za AI probleme sa simboličkim zaključivanjem, bazama podataka i aplikacijama za raščlanjivanje jezika. Izbor jednog nad drugim u potpunosti zavisi od vrste AI problema koji treba riješiti.