Prolog proti Lisp
Prolog in Lisp sta danes najbolj priljubljena računalniška programska jezika AI (umetna inteligenca). Zgrajeni so z dvema različnima programskima paradigmama. Prolog je deklarativni jezik, medtem ko je Lisp funkcionalni jezik. Oba se uporabljata za različne težave z umetno inteligenco, vendar se Prolog uporablja predvsem za težave z logiko in razmišljanjem, medtem ko se Lisp uporablja za težave s potrebami po hitri izdelavi prototipov.
Prolog
Prolog je programski jezik AI. Spada v družino logičnih programskih jezikov. Prolog je deklarativni jezik, v katerem se izračuni prenašajo z izvajanjem poizvedb nad relacijami (ki predstavljajo programsko logiko), ki so definirane kot pravila in dejstva. Prolog, razvit leta 1970, je eden najstarejših logičnih programskih jezikov in eden najbolj priljubljenih programskih jezikov AI danes (skupaj z Lispom). Je brezplačen jezik, vendar je na voljo veliko komercialnih različic. Najprej so ga uporabljali za obdelavo naravnega jezika, zdaj pa ga uporabljajo za različne naloge, kot so ekspertni sistemi, avtomatski odzivniki, igre in napredni nadzorni sistemi. Prolog ima samo en podatkovni tip, imenovan termin. Izraz je lahko atom, število, spremenljivka ali sestavljen izraz. Številke so lahko lebdeče ali cele. Prolog podpira sezname in niz kot zbirko elementov. Prolog definira relacije z uporabo klavzul. Klavzule so lahko pravila ali dejstva. Prolog dovoljuje ponavljanje skozi svoje rekurzivne predikate.
Lisp
Lisp je družina računalniških programskih jezikov. In najbolj znana narečja Lisp, ki se danes uporabljajo za splošno programiranje, sta Common Lisp in Scheme. Ime LISP izvira iz "LIST Processing" in kot namiguje, je glavna podatkovna struktura Lispa povezani seznam. Pravzaprav je celoten vir napisan z uporabo seznamov (z uporabo zapisa s predponami) ali pravilneje s seznami v oklepajih (imenovanih s-izrazi). Na primer, klic funkcije je zapisan kot (f a1 a2 a3), kar pomeni, da se funkcija f kliče z uporabo a1, a2 in a3 kot vhodnih argumentov za funkcijo. Zato se imenuje izrazno usmerjen jezik, kjer so vsi podatki in koda zapisani kot izrazi (v Lispu ni razlik med izrazi in stavki). Ta prijetna funkcija je zelo posebna za Lisp, kjer bi jo lahko uporabili za razširitev jezika na obravnavani problem s pisanjem uporabnih makrov. Čeprav programerji uporabljajo repno rekurzijo za izražanje zank, vsa pogosto videna narečja Lispa vključujejo nadzorne strukture, kot je zanka. Poleg tega imata Common Lisp in shema mapcar in map, ki sta primera funkcij, ki zagotavljajo funkcionalnost zanke, tako da funkcijo zaporedno uporabijo za vse njene elemente in nato zberejo rezultate na seznam.
Kakšna je razlika med Prologom in Lispom?
Čeprav sta Prolog in Lisp dva najbolj priljubljena programska jezika AI, imata različne razlike. Lisp je funkcionalni jezik, medtem ko je Prolog logični programski in deklarativni jezik. Lisp je zelo prilagodljiv zaradi svoje hitre izdelave prototipov in makro funkcij, tako da dejansko omogoča razširitev jezika, da ustreza problemu. Na področjih umetne inteligence, grafike in uporabniških vmesnikov je bil Lisp obširno uporabljen zaradi te zmožnosti hitre izdelave prototipov. Vendar pa je Prolog zaradi svojih vgrajenih zmožnosti logičnega programiranja idealen za težave z umetno inteligenco s simbolnim razmišljanjem, aplikacijami za razčlenjevanje baze podatkov in jezika. Izbira enega nad drugim je povsem odvisna od vrste problema AI, ki ga je treba rešiti.