Prolog vs Lisp
Prolog og Lisp er to av de mest populære AI (Artificial Intelligence) programmeringsspråket i dag. De er bygget med to forskjellige programmeringsparadigmer. Prolog er et deklarativt språk, mens Lisp er et funksjonelt språk. Begge brukes til ulike AI-problemer, men Prolog brukes mest for logikk- og resonneringsproblemer, mens Lisp brukes til problemer med raske prototypebehov.
Prolog
Prolog er et AI programmeringsspråk. Det tilhører familien av logiske programmeringsspråk. Prolog er et deklarativt språk, hvor beregninger overføres ved å løpe spørringer over relasjonene (som representerer programlogikk), som er definert som regler og faktum. Prolog er utviklet i 1970, og er et av de eldste logiske programmeringsspråkene og et av de mest populære AI programmeringsspråkene i dag (sammen med Lisp). Det er et fritt språk, men mange kommersielle varianter er tilgjengelige. Det ble først brukt til naturlig språkbehandling, men nå har den vært brukt til ulike oppgaver som ekspertsystemer, automatiserte telefonsvarere, spill og avanserte kontrollsystemer. Prolog har bare en datatype kalt begrepet. En Term kan være et atom, tall, variabel eller en sammensatt term. Tall kan være float eller heltall. Prolog støtter lister og streng som samling av gjenstander. Prolog definerer relasjoner ved bruk av klausuler. Klausuler kan være enten regler eller fakta. Prolog tillater iterering grundig sine rekursive predikater.
Lisp
Lisp er en familie av programmeringssprog. Og de mest kjente Lisp dialektene som brukes til generell bruk programmering i dag er Common Lisp og Scheme. Navnet LISP kommer fra "LISt Processing", og som det hint er Lisps store datastruktur den lenkede listen. Faktisk er hele kilden skrevet ved hjelp av lister (ved bruk av prefixnotasjon), eller flere riktig parenteserte lister (kalt s-uttrykk). For eksempel er et funksjonsanrop skrevet som (f a1 a2 a3), hvilket betyr at funksjon f kalles ved å bruke a1, a2 og a3 som inngangsargumenter for funksjonen. Derfor kalles det et uttrykksorientert språk, hvor alle data og kode er skrevet som uttrykk (det er ingen forskjell mellom uttrykk og uttalelser i Lisp). Denne fine funksjonen er veldig spesiell for Lisp, der den kan brukes til å utvide språket til problemet ved å skrive nyttige makroer. Selv om hale-rekursjon brukes av programmerere til å uttrykke sløyfer, inneholder alle ofte sett Lisp-dialekter kontrollstrukturer som sløyfe. Videre har Common Lisp og skjema kartkart og kart som er eksempler på funksjoner, som gir loopingsfunksjonalitet ved å bruke funksjonen suksessivt til alle elementene og deretter samler resultatene inn i en liste.
Hva er forskjellen mellom Prolog og Lisp?
Selv om Prolog og Lisp er to av de mest populære AI programmeringsspråk, har de forskjellige forskjeller. Lisp er et funksjonelt språk, mens Prolog er en logisk programmering og deklarative språk. Lisp er veldig fleksibel på grunn av sin raske prototyping og makrofunksjoner, slik at det faktisk gir mulighet for å utvide språket for å passe problemet ved hånden. På områdene AI, grafikk og brukergrensesnitt, har Lisp blitt brukt mye på grunn av denne raske prototypingsevnen. På grunn av sin innebygde logiske programmeringsevne, er Prolog imidlertid ideell for AI-problemer med symbolsk ræsonnement, database og språkparsing. Valget av det ene over det andre avhenger helt av typen AI-problem som må løses.