Razlika med Prologom in Lispom

Prolog proti Lisp

Prolog in Lisp sta danes najbolj priljubljena računalniška programska jezika AI (Artificial Intelligence). Zgrajene so z dvema različnima programskim paradigmam. Prolog je deklarativni jezik, Lisp pa funkcionalen jezik. Oba se uporabljata za različne težave z AI, vendar se Prolog uporablja največ za težave z logiko in sklepanjem, medtem ko se Lisp uporablja za težave s hitrimi potrebami prototipov..

Prolog

Prolog je programski jezik AI. Spada v družino logičnih programskih jezikov. Prolog je deklarativni jezik, v katerem se računi prenašajo z izvajanjem poizvedb o odnosih (ki predstavljajo programsko logiko), ki so definirana 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 se uporablja za različne naloge, kot so strokovni sistemi, avtomatski odzivni sistemi, igre in napredni nadzorni sistemi. Prolog ima samo eno vrsto podatkov, imenovano izraz. Izraz je lahko atom, število, spremenljivka ali sestavljeni izraz. Števila so lahko float ali cela števila. Prolog podpira sezname in niz kot zbirko predmetov. Prolog definira odnose s klavzulami. Klavzule so lahko pravila ali dejstva. Prolog omogoča iteracijo temeljitim rekurzivnim predikatom.

Lisp

Lisp je družina računalniških programskih jezikov. Najbolj znana Lispova narečja, ki jih danes uporabljamo za programiranje za splošne namene, sta skupni Lisp in Scheme. Ime LISP izvira iz „LISt Processing“ in kot namiguje, je glavna podatkovna struktura podjetja Lisp povezan seznam. Dejansko je celoten vir napisan s pomočjo seznamov (z uporabo predponskih zapisov) ali bolj pravilno oklepanih seznamov (imenovanih s-izrazi). Na primer, klic funkcije je zapisan kot (f a1 a2 a3), kar pomeni, da se funkcija f imenuje 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 nobene razlike med izrazi in stavki). Ta lepa lastnost je za Lisp zelo posebna, kjer bi ga lahko uporabili za razširitev jezika na težavo s pisanjem uporabnih makrov. Čeprav programerji za izražanje zank uporabljajo programski rekurzijo, vse pogosto vidne Lispove narečje vsebujejo nadzorne strukture, kot je zanka. Poleg tega imata skupni Lisp in shema mapcar in map, ki sta primera funkcij, ki zagotavljata zanko funkcionalnost tako, da funkcijo zaporedno uporabljata za vse njene elemente in nato rezultate zbere 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 funkcionalen jezik, Prolog pa logični programski in deklarativni jezik. Lisp je zaradi svojega hitrega prototipiranja in makro funkcij zelo prilagodljiv, zato dejansko omogoča razširitev jezika, da ustreza težavi. Na področjih AI, grafike in uporabniških vmesnikov je bil Lisp veliko uporabljen zaradi te hitro sposobnost prototipiranja. Vendar pa je Prolog zaradi svojih vgrajenih zmožnosti logičnega programiranja idealen za težave z AI s simboličnim sklepanjem, aplikacijami za analiziranje baz podatkov in jezikov. Izbira ene od druge je popolnoma odvisna od vrste AI problema, ki ga je treba rešiti.