Diferència entre Prolog i Lisp

Diferència entre Prolog i Lisp
Diferència entre Prolog i Lisp

Vídeo: Diferència entre Prolog i Lisp

Vídeo: Diferència entre Prolog i Lisp
Vídeo: Pascal vs C++ vs Lisp vs Prolog vs Visual Basic vs Java - Comparando los diferentes lenguajes 2024, Juliol
Anonim

Prolog vs Lisp

Prolog i Lisp són dos dels llenguatges de programació informàtics d'IA (Intel·ligència artificial) més populars actuals. Es construeixen amb dos paradigmes de programació diferents. Prolog és un llenguatge declaratiu, mentre que Lisp és un llenguatge funcional. Tots dos s'utilitzen per a diversos problemes d'IA, però Prolog s'utilitza més per a problemes de lògica i raonament, mentre que Lisp s'utilitza per a problemes amb necessitats de prototipat ràpid.

Pròleg

Prolog és un llenguatge de programació d'IA. Pertany a la família de llenguatges de programació lògica. Prolog és un llenguatge declaratiu, en el qual els càlculs es transmeten executant consultes sobre les relacions (que representen la lògica del programa), que es defineixen com a regles i fets. Desenvolupat el 1970, prolog és un dels llenguatges de programació lògics més antics i un dels llenguatges de programació d'IA més populars actuals (juntament amb Lisp). És un llenguatge gratuït, però hi ha moltes variants comercials disponibles. Primer s'utilitzava per al processament del llenguatge natural, però ara s'utilitza per a diverses tasques, com ara sistemes experts, sistemes de resposta automàtica, jocs i sistemes de control avançats. Prolog només té un tipus de dades anomenat terme. Un terme pot ser un àtom, un nombre, una variable o un terme compost. Els nombres poden ser flotants o enters. Prolog admet llistes i cadenes com a col·lecció d'elements. Prolog defineix relacions mitjançant clàusules. Les clàusules poden ser regles o fets. Prolog permet la iteració a través dels seus predicats recursius.

Lisp

Lisp és una família de llenguatges de programació informàtica. I els dialectes Lisp més famosos que s'utilitzen avui en dia per a la programació de propòsit general són Common Lisp i Scheme. El nom LISP prové de "List Processing" i, tal com indica, l'estructura de dades principal de Lisp és la llista enllaçada. De fet, tota la font s'escriu utilitzant llistes (utilitzant la notació de prefix), o més correctament llistes entre parèntesis (anomenades expressions-s). Per exemple, una trucada de funció s'escriu com a (f a1 a2 a3), el que significa que la funció f s'anomena utilitzant a1, a2 i a3 com a arguments d'entrada per a la funció. Per tant, s'anomena llenguatge orientat a expressions, on totes les dades i el codi s'escriuen com a expressions (no hi ha distinció entre expressions i sentències a Lisp). Aquesta característica agradable és molt especial per a Lisp, on es podria utilitzar per ampliar el llenguatge al problema en qüestió escrivint macros útils. Tot i que els programadors fan servir la recursència de la cua per expressar bucles, tots els dialectes Lisp que es veuen amb freqüència inclouen estructures de control com el bucle. A més, Common Lisp i Scheme tenen mapcar i map que són exemples de funcions, que proporcionen una funcionalitat de bucle aplicant la funció successivament a tots els seus elements i després recull els resultats en una llista.

Quina diferència hi ha entre Prolog i Lisp?

Tot i que Prolog i Lisp són dos dels llenguatges de programació d'IA més populars, tenen diverses diferències. Lisp és un llenguatge funcional, mentre que Prolog és un llenguatge de programació lògica i declaratius. Lisp és molt flexible a causa dels seus prototips ràpids i de les seves funcions macro, de manera que permet ampliar el llenguatge per adaptar-se al problema en qüestió. A les àrees d'IA, gràfics i interfícies d'usuari, Lisp s'ha utilitzat àmpliament a causa d'aquesta capacitat de prototipat ràpid. Tanmateix, a causa de les seves habilitats de programació lògica integrades, Prolog és ideal per a problemes d'IA amb aplicacions de raonament simbòlic, bases de dades i anàlisi de llenguatge. L'elecció d'una sobre l' altra depèn completament del tipus de problema d'IA que cal resoldre.

Recomanat: