Atšķirība starp Prolog un Lisp

Atšķirība starp Prolog un Lisp
Atšķirība starp Prolog un Lisp

Video: Atšķirība starp Prolog un Lisp

Video: Atšķirība starp Prolog un Lisp
Video: Sia - Unstoppable (Official Video - Live from the Nostalgic For The Present Tour) 2024, Jūlijs
Anonim

Prolog pret Lisp

Prolog un Lisp ir divas no mūsdienās populārākajām AI (mākslīgā intelekta) datorprogrammēšanas valodām. Tie ir veidoti ar divām dažādām programmēšanas paradigmām. Prolog ir deklaratīva valoda, savukārt Lisp ir funkcionāla valoda. Abas tiek izmantotas dažādām mākslīgā intelekta problēmām, bet Prolog visbiežāk izmanto loģikas un argumentācijas problēmām, savukārt Lisp izmanto problēmām, kas saistītas ar ātras prototipēšanas vajadzībām.

Prologs

Prolog ir AI programmēšanas valoda. Tas pieder pie loģiskās programmēšanas valodu saimes. Prolog ir deklaratīva valoda, kurā aprēķini tiek pārnesti, izpildot vaicājumus pār relācijām (kas atspoguļo programmas loģiku), kas tiek definētas kā noteikumi un fakti. Prolog, kas izstrādāts 1970. gadā, ir viena no vecākajām loģiskās programmēšanas valodām un viena no mūsdienās populārākajām AI programmēšanas valodām (kopā ar Lisp). Tā ir bezmaksas valoda, taču ir pieejami daudzi komerciāli varianti. Vispirms 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. Prologam ir tikai viens datu tips, ko sauc par terminu. Termins var būt atoms, skaitlis, mainīgais vai salikts termins. Skaitļi var būt peldoši vai veseli skaitļi. Prolog atbalsta sarakstus un virkni kā vienumu kolekciju. Prolog definē attiecības, izmantojot klauzulas. Klauzulas var būt gan noteikumi, gan fakti. Prolog ļauj veikt pilnīgu iterāciju tā rekursīvajos predikātos.

Lisp

Lisp ir datoru programmēšanas valodu saime. Un slavenākie Lisp dialekti, kas mūsdienās tiek izmantoti vispārējas nozīmes programmēšanai, ir Common Lisp un Scheme. Nosaukums LISP nāk no “LIST Processing”, un, kā tas norāda, Lisp galvenā datu struktūra ir saistītais saraksts. Faktiski viss avots ir rakstīts, izmantojot sarakstus (izmantojot prefiksu apzīmējumus) vai pareizāk iekavās ievietotus sarakstus (ko sauc 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 a1, a2 un a3 kā funkcijas ievades argumentus. Tāpēc to sauc par izteiksmes orientētu valodu, kurā visi dati un kods tiek rakstīti kā izteiksmes (Lisp valodā nav atšķirības starp izteiksmēm un apgalvojumiem). Šī jaukā funkcija ir ļoti īpaša Lisp, kur to var izmantot, lai paplašinātu valodu, iekļaujot problēmu, rakstot noderīgus makro. Lai gan programmētāji izmanto astes rekursiju, lai izteiktu cilpas, visi bieži sastopamie Lisp dialekti ietver vadības struktūras, piemēram, cilpu. Turklāt Common Lisp un shēmai ir mapcar un karte, kas ir funkciju piemēri, kas nodrošina cilpas funkcionalitāti, izmantojot funkciju secīgi visiem tās elementiem un pēc tam apkopo rezultātus 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āla valoda, savukārt Prolog ir loģiskās programmēšanas un deklaratīvās valodas. Lisp ir ļoti elastīgs, pateicoties tā ātrajai prototipu veidošanai un makro funkcijām, tāpēc tas faktiski ļauj paplašināt valodu, lai tā atbilstu konkrētajai problēmai. AI, grafikas un lietotāja saskarņu jomās Lisp ir plaši izmantots šīs ātrās prototipēšanas spējas dēļ. Tomēr, pateicoties iebūvētajām loģiskās programmēšanas spējām, Prolog ir ideāli piemērots mākslīgā intelekta problēmām ar simbolisku argumentāciju, datu bāzu un valodu parsēšanas lietojumprogrammām. Viena no otras izvēles iespējām pilnībā atkarīga no AI problēmas veida, kas jāatrisina.

Ieteicams: