Prolog vs Lisp
Prolog a Lisp sú dnes dva z najpopulárnejších počítačových programovacích jazykov AI (Artificial Intelligence). Sú postavené s dvoma rôznymi programovacími paradigmami. Prolog je deklaratívny jazyk, zatiaľ čo Lisp je funkčný jazyk. Obidva sa používajú na rôzne problémy s AI, ale Prolog sa najviac používa na problémy s logikou a uvažovaním, zatiaľ čo Lisp sa používa na problémy s potrebami rýchleho prototypovania.
Prolog
Prolog je programovací jazyk AI. Patrí do rodiny logických programovacích jazykov. Prolog je deklaratívny jazyk, v ktorom sa výpočty prenášajú spustením dotazov na vzťahy (ktoré predstavujú programovú logiku), ktoré sú definované ako pravidlá a fakt. Prolog, vyvinutý v roku 1970, je jedným z najstarších logických programovacích jazykov a jedným z najpopulárnejších programovacích jazykov AI súčasnosti (spolu s Lisp). Je to bezplatný jazyk, ale je k dispozícii veľa komerčných variantov. Najprv sa používal na spracovanie prirodzeného jazyka, ale teraz sa používa na rôzne úlohy, ako sú expertné systémy, automatizované odpovedajúce systémy, hry a pokročilé riadiace systémy. Prolog má iba jeden dátový typ nazývaný termín. Výraz môže byť atóm, číslo, premenná alebo zložený výraz. Čísla môžu byť pohyblivé alebo celé čísla. Prolog podporuje zoznamy a reťazce ako kolekciu položiek. Prolog definuje vzťahy pomocou klauzúl. Klauzuly môžu byť buď pravidlá, alebo fakty. Prolog umožňuje iteráciu prostredníctvom svojich rekurzívnych predikátov.
Lisp
Lisp je rodina počítačových programovacích jazykov. A najznámejšie dialekty Lisp používané na všeobecné programovanie sú dnes Common Lisp a Scheme. Názov LISP pochádza zo „Spracovanie zoznamu“a ako naznačuje, hlavnou dátovou štruktúrou Lisp je prepojený zoznam. V skutočnosti je celý zdroj napísaný pomocou zoznamov (s použitím predpony) alebo správnejšie v zátvorkách (nazývaných s-výrazy). Napríklad volanie funkcie je napísané ako (fa1 a2 a3), čo znamená, že funkcia f sa volá pomocou a1, a2 a a3 ako vstupných argumentov pre funkciu. Preto sa nazýva výrazovo orientovaný jazyk, kde sú všetky dáta a kódy zapísané ako výrazy (v Lispe nie je rozdiel medzi výrazmi a príkazmi). Táto pekná funkcia je veľmi špeciálna pre Lisp, kde by sa dala použiť na rozšírenie jazyka na daný problém napísaním užitočných makier. Hoci chvostovú rekurziu používajú programátori na vyjadrenie slučiek, všetky často používané dialekty Lisp obsahujú riadiace štruktúry ako slučka. Okrem toho, Common Lisp a schéma majú mapcar a map, ktoré sú príkladmi funkcií, ktoré poskytujú funkcionalitu opakovania tým, že funkciu postupne aplikujú na všetky jej prvky a potom zhromažďujú výsledky do zoznamu.
Aký je rozdiel medzi Prolog a Lisp?
Hoci Prolog a Lisp sú dva z najpopulárnejších programovacích jazykov AI, majú rôzne rozdiely. Lisp je funkčný jazyk, zatiaľ čo Prolog je logické programovacie a deklaratívne jazyky. Lisp je veľmi flexibilný vďaka rýchlemu prototypovaniu a makro funkciám, takže v skutočnosti umožňuje rozšírenie jazyka tak, aby vyhovoval danému problému. V oblastiach AI, grafiky a používateľských rozhraní sa Lisp vo veľkej miere používa kvôli tejto schopnosti rýchleho prototypovania. Avšak vďaka svojim vstavaným schopnostiam logického programovania je Prolog ideálny pre problémy AI so symbolickým uvažovaním, databázovými a jazykovými aplikáciami. Výber jedného z druhého úplne závisí od typu problému AI, ktorý je potrebné vyriešiť.