GONZLEZ ANGULO ARIADNA ITZEL
Lenguaje de Programacin PROLOG
Historia.
Se trata de un lenguaje de programacin ideado a principios de los aos 70 en la
Universidad de Aix-Marseille (Marsella, Francia) por los profesores Alain Colmerauer y
Philippe Roussel. Naci de un proyecto que no tena como objetivo la implementacin de un
lenguaje de programacin, sino el procesamiento de lenguajes naturales. Alain Colmerauer
y Robert Pasero trabajaban en la parte del procesado del lenguaje natural y Jean Trudel y
Philippe Roussel en la parte de deduccin e inferencia del sistema. Interesado por el
mtodo de resolucin SL, Trudel persuadi a Robert Kowalski para que se uniera al
proyecto, dando lugar a una versin preliminar del lenguaje Prolog a finales de 1971 y
apareciendo la versin definitiva en 1972. Esta primera versin de Prolog fue programada
en ALGOL W.
Inicialmente se trataba de un lenguaje totalmente interpretado hasta que, en 1983,
David H.D. Warren desarroll un compilador capaz de traducir Prolog en un conjunto de
instrucciones de una mquina abstracta denominada Warren Abstract Machine, o
abreviadamente, WAM. Desde entonces Prolog es un lenguaje semi-interpretado.
Si bien en un principio se trataba de un lenguaje de uso reducido, la aparicin de
intrpretes del mismo para microordenadores de 8 bits (ej: micro-PROLOG) y para
ordenadores domsticos de 16 bits (ej: Turbo Prolog de Borland, entre otros muchos) a lo
largo de la dcada de 1980 contribuy notablemente a su popularizacin. Otro importante
factor en su difusin fue la adopcin del mismo para el desarrollo del proyecto de la quinta
generacin de computadoras a principios de la dcada de los 80,[5] en cuyo contexto se
desarroll la implementacin paralelizada del lenguaje llamada KL1 y del que deriva parte
del desarrollo moderno de Prolog.
Las primeras versiones del lenguaje diferan, en sus diferentes implementaciones, en
muchos aspectos de sus sintaxis, emplendose mayormente como forma normalizada el
dialecto propuesto por la Universidad de Edimburgo, hasta que en 1995 se estableci un
estndar ISO (ISO/IEC 13211-1), llamado ISO-Prolog.
Prolog se enmarca en el paradigma de los lenguajes lgicos y declarativos, lo que lo
diferencia enormemente de otros lenguajes ms populares tales como Fortran, Pascal, C o
Java.
Caractersticas.
Japn lo incluye en sus proyectos de ordenadores de 5 Generacin.
Estados Unidos incorpora Prolog ms tarde (utilizaban Lisp).
Hoy en da Prolog es aceptado como uno de los mejores lenguajes de la Inteligencia
Artificial.
La Quinta Generacin prev mquinas diseadas para el tratamiento lgico, de
capacidades anlogas a las capacidades de anteriores generaciones de ordenadores
para tratar operaciones aritmticas. Se trata de ordenadores que tienen el PROLOG
como lenguaje nativo (lenguaje mquina), con capacidad para procesar millones de
inferencias lgicas por segundo (LIPS).
Una representacin declarativa es aqulla en la que el conocimiento est
especificado, pero en la que la manera en que dicho conocimiento debe ser usado no
viene dado. El ms popular de los sistemas de programacin lgica es el PROLOG.
Ventajas.
Prolog, y en general los lenguajes de programacin lgica, tienen las
siguientes ventajas frente a los lenguajes clsicos (procedimentales):
Expresividad: un programa (base de conocimiento) escrito en prolog puede ser ledo
e interpretado intuitivamente. Son, por tanto, ms entendibles, manejables y fciles
de mantener.
Ejecucin y bsqueda incorporada en el lenguaje: dada una descripcin prolog
vlida de un problema, automticamente se obtiene cualquier conclusin vlida.
Modularidad: cada predicado (procedimiento) puede ser ejecutado, validado y
examinado independiente e individualmente. Prolog no tiene variables globales, ni
asignacin. Cada relacin est auto contenida, lo que permite una mayor
modularidad, portabilidad y reusabilidad de relaciones entre programas.
Polimorfismo: se trata de un lenguaje de programacin sin tipos, lo que permite un
alto nivel de abstraccin e independencia de los datos (objetos).
Manejo dinmico y automtico de memoria.
Una ventaja desde el punto de vista del usuario es la facilidad para programar ya que
se pueden escribir programas rpidamente, con pocos errores originando programas
claramente legibles, aun si no se conoce muy bien el lenguaje.
Otra ventaja de este tipo de lenguajes frente a otros, como Java o C++, es que no
hay que pensar demasiado en la solucin del problema, ya que Prolog infiere sus
respuestas basndose en las reglas declaradas dentro del programa.
Desventajas.
La resolucin automtica no siempre es eficiente, por lo que eventualmente se podra
dar una respuesta incorrecta a una consulta.
Ciertos problemas estn ligados a la representacin del conocimiento, que Prolog no
posee.
Prolog es algunas veces es incapaz de reconocer que un problema es (para su
propio conocimiento) inaplicable o insuficiente. Si el programa no contiene suficiente
informacin para contestar una consulta, es incapaz de reconocerlo y responde no.
En esta situacin sera ms eficiente conocer que la respuesta no es negativa, sino
que no es posible inferir un resultado.
Los motores de inferencia poseen algunos lmites.
Aplicaciones.
Prolog se usa en diversos campos, incluyendo finanzas, defensa, telecomunicaciones,
medicina, agricultura, ingeniera, manufactura y educacin.
Se utiliza en aplicaciones de inteligencia artificial, como interfaces de idiomas en los
que busca en la base de datos para responder una pregunta.
Otra rea de su aplicacin es en sistemas ambientales que son capaces de predecir el
clima, analizar suministros de agua, entre otros. Un ejemplo es el MM4 Weather Modeling
System, desarrollado en la Universidad Penn State y el Centro Nacional de Investigacin
Atmosfrica (Co, EEUU), el cual es capaz de predecir condiciones meteorolgicas a corto
plazo. El sistema analiza imgenes de satlite y de acuerdo con los patrones de las nubes
se puede pronosticar el tiempo de los siguientes das.
Prolog se puede utilizar para representar autmatas. Al fijar los hechos (que
generalmente consisten en las transiciones del autmata) se pueden hacer consultas para
verificar si una expresin es o no aceptada por el autmata.
Ejemplo.
Se dispone de una base de conocimiento compuesta de reglas sobre clasificacin de
animales y hechos sobre caractersticas de un animal.
Regla 1: Si un animal es ungulado y tiene rayas negras, entonces es una cebra.
Regla 2: Si un animal rumia y es mamfero, entonces es ungulado.
Regla 3: Si un animal es mamfero y tiene pezuas, entonces es ungulado.
Hecho 1: El animal es mamfero.
Hecho 2: El animal tiene pezuas.
Hecho 3: El animal tiene rayas negras.
%
%Reglas
%
es_cebra :- es_ungulado, tiene_rayas_negras. % Regla 1
es_ungulado :- rumia, es_mamfero. % Regla 2
es_ungulado :- es_mamfero, tiene_pezuas. % Regla 3
%
%Hechos
%8
es_mamfero. % Hecho 1
tiene_pezuas. % Hecho 2
tiene_rayas_negras. % Hecho 3
%
%Consulta de prueba
%
?- es_cebra
Yes
Prolog para haber llegado a responder yes a la pregunta de si es cebra? realiz un rbol
de deduccin.
REFERENCIAS
http://quice85.wordpress.com/asignaturas/inteligencia-artificial/prolog/
http://www.uhu.es/18214/temas/tema1(I).pdf
http://fcqi.tij.uabc.mx/usuarios/ardiaz/material/manual_lab_prolog.pdf
http://www.di-mare.com/adolfo/cursos/2007-2/pp-Prolog.pdf