Atšķirība starp Prolog un Lisp

Prologs vs Lisps

Prolog un Lisp ir divas mūsdienās populārākās AI (mākslīgā intelekta) datorprogrammēšanas valodas. Tie ir veidoti ar divām dažādām programmēšanas paradigmām. Prolog ir deklaratīvā valoda, savukārt Lisp ir funkcionālā valoda. Abas tiek izmantotas dažādām AI problēmām, bet Prolog visbiežāk tiek izmantotas loģikas un argumentācijas problēmām, savukārt Lisp tiek izmantots problēmām ar ātrām prototipēšanas vajadzībām.

Prolog

Prolog ir AI programmēšanas valoda. Tas pieder loģiskās programmēšanas valodu saimei. Prolog ir deklaratīva valoda, kurā aprēķini tiek pārnesti, izpildot vaicājumus par attiecībām (kas pārstāv programmas loģiku), kuras tiek definētas kā noteikumi un fakts. Izstrādāts 1970. gadā, prolog ir viena no vecākajām loģiskās programmēšanas valodām un viena no populārākajām AI programmēšanas valodām mūsdienās (kopā ar Lisp). Tā ir bezmaksas valoda, taču ir pieejami daudzi komerciālie varianti. Pirmoreiz to izmantoja dabiskās valodas apstrādei, bet tagad to izmanto dažādiem uzdevumiem, piemēram, ekspertu sistēmām, automatizētām atbildēšanas sistēmām, spēlēm un uzlabotām vadības sistēmām. Prolog ir tikai viens datu tips, ko sauc par terminu. Termins var būt atoms, skaitlis, mainīgais vai salikts termins. Cipari var būt mainīgi vai veseli skaitļi. Prolog atbalsta sarakstus un virkni kā priekšmetu kolekciju. Prolog definē attiecības, izmantojot klauzulas. Klauzulas var būt gan noteikumi, gan fakti. Prolog ļauj atkārtot atkārtotus predikātus.

Lisp

Lisps ir datoru programmēšanas valodu saime. Un slavenākie Lispa dialekti, kurus šodien izmanto vispārējas nozīmes programmēšanai, ir Common Lisp un Scheme. Nosaukums LISP cēlies no “LISt Processing”, un, kā tas norāda, Lispa galvenā datu struktūra ir saistītais saraksts. Faktiski viss avots tiek uzrakstīts, izmantojot sarakstus (izmantojot prefiksa notāciju) vai pareizāk iekavotus sarakstus (sauktus par s-izteiksmēm). Piemēram, funkcijas izsaukums tiek uzrakstīts kā (f a1 a2 a3), kas nozīmē, ka funkcija f tiek izsaukta, izmantojot funkcijas a1, a2 un a3 kā ievades argumentus. Tāpēc to sauc par uz izteiksmi orientētu valodu, kurā visi dati un kods tiek rakstīti kā izteiksmes (Lisp nav atšķirība starp izteicieniem un izteikumiem). Šī jaukā īpašība ir ļoti īpaša Lispam, kur to varēja izmantot, lai paplašinātu valodu līdz šai problēmai, rakstot noderīgus makro. Kaut arī programmētāji programmē astes atkārtošanos, lai izteiktu cilpas, visos bieži redzamajos Lispa dialektos ir tādas vadības struktūras kā cilpa. Turklāt Common Lisp un shēmai ir mapcar un map, kas ir funkciju piemēri, kas nodrošina cilpas funkcionalitāti, piemērojot funkciju secīgi visiem tās elementiem, un pēc tam rezultātus apkopo sarakstā.

Kāda ir atšķirība starp Prolog un Lisp?

Lai gan Prolog un Lisp ir divas no populārākajām AI programmēšanas valodām, tām ir dažādas atšķirības. Lisp ir funkcionālā valoda, savukārt Prolog ir loģiskā programmēšana un deklaratīvās valodas. Lisp ir ļoti elastīgs, pateicoties ātrajam prototipu veidošanai un makro funkcijām, tāpēc tas faktiski ļauj paplašināt valodu, lai tā atbilstu attiecīgajai problēmai. AI, grafikas un lietotāja saskarņu jomā Lisp ir plaši izmantots šīs ātras prototipēšanas spējas dēļ. Tomēr, pateicoties iebūvētajām loģiskās programmēšanas iespējām, Prolog ir ideāli piemērots AI problēmām ar simbolisku spriešanas, datu bāzes un valodas parsēšanas lietojumprogrammām. Viena no otra izvēle ir pilnībā atkarīga no AI problēmas veida, kas jāatrisina.