0% encontró este documento útil (0 votos)
23 vistas20 páginas

Historia y Funcionalidad de Prolog

Prolog es un lenguaje de programación lógica creado en los años 1970 para el procesamiento de lenguajes naturales. Los programas en Prolog se componen de cláusulas que establecen relaciones entre objetos y permiten derivar nuevos hechos. Prolog tiene ventajas como la facilidad de programación y claridad pero también desventajas como la falta de eficiencia y capacidad limitada para reconocer problemas insuficientes.

Cargado por

Pablo Pereira
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
23 vistas20 páginas

Historia y Funcionalidad de Prolog

Prolog es un lenguaje de programación lógica creado en los años 1970 para el procesamiento de lenguajes naturales. Los programas en Prolog se componen de cláusulas que establecen relaciones entre objetos y permiten derivar nuevos hechos. Prolog tiene ventajas como la facilidad de programación y claridad pero también desventajas como la falta de eficiencia y capacidad limitada para reconocer problemas insuficientes.

Cargado por

Pablo Pereira
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

HISTORIA FUNCIONALIDAD

PROLOG EJEMPLOS VENTAJAS Y DESVENTAJAS

HISTORIA
Prolog(del francs, programmation en logique). Se trata de un lenguaje de programacin ideado a principios de los aos 70 en la universidad de aixmarseille (marsella, francia) por los profesores alain colmerauer y philippe roussel.

HISTORIA
Tena como objetivo el procesamiento de lenguajes naturales. Dio lugar a una version preliminar del lenguaje Prolog a finales de 1971 y apareciendo la versin definitiva en 1972.

HISTORIA
Esta primera versin fue programada en algol w (se denomina algol a un lenguaje de programacin. La voz es un acrnimo de las palabras inglesas algorithmic language (lenguaje algortmico)).

HISTORIA
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.

HISTORIA
En la dcada de 1980 contribuy notablemente a su popularizacin el desarrollo del proyecto de la quinta generacin de computadoras en cuyo contexto se desarroll la implementacin paralelizada del lenguaje llamada KL1 y del que deriva parte del desarrollo moderno de PROLOG.

HISTORIA
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.

FUNCIONALIDAD
En los lenguajes de programacin, las instrucciones se ejecutan normalmente en orden secuencial, es decir, una a continuacin de otra, en el mismo orden en que estn escritas, que slo vara cuando se alcanza una instruccin de control (un bucle, una instruccin condicional o una transferencia).

FUNCIONALIDAD
Los programas en Prolog se componen de clusulas de Horn que constituyen reglas del tipo "modus ponendo ponens", es decir, "Si es verdad el antecedente, entonces es verdad el consecuente. No obstante, la forma de escribir las clusulas de Horn es al contrario de lo habitual.

HECHOS: Expresan relaciones entre objetos. Suponiendo que se quiera expresar el hecho de que "un coche tiene ruedas". Este hecho, consta de dos objetos, "coche" y "ruedas", y de una relacin llamada "tiene". La forma de representarlo en PROLOG es: tiene(coche,ruedas).

FUNCIONALIDAD

VARIABLES: Representan objetos que el mismo PROLOG determina, puede estar instanciada(cuando existe un objeto determinado representado por la variable) no instanciada. Los nombres de variables comienzan siempre por una letra mayscula.

FUNCIONALIDAD

REGLAS: Una regla consiste en una cabeza y un cuerpo, unidos por el signo ":-". La cabeza est formada por un nico hecho. El cuerpo puede ser uno mas hechos (conjuncin de hechos), separados por una coma (","), que acta como el "y" lgico. Las reglas finalizan con un punto (".").

FUNCIONALIDAD

EJEMPLOS
tiempo(lluvioso) ----> suelo(mojado) suelo(mojado) suelo(mojado):- tiempo(lluvioso). suelo(mojado). tiempo(lluvioso):- suelo(mojado). suelo(mojado). es_un_coche(X) ----> tiene(X,ruedas) tiene(X,ruedas):- es_un_coche(X).

enfermo_de(manuel,gripe). tiene_sintoma(alicia,cansancio). sintoma_de(fiebre,gripe). sintoma_de(tos,gripe). sintoma_de(cansancio,anemia). elimina(vitaminas,cansancio). elimina(aspirinas,fiebre). elimina(jarabe,tos). recetar_a(X,Y):-enfermo_de(Y,A),alivia(X,A). alivia(X,Y):-elimina(X,A),sintoma_de(A,Y).

EJEMPLOS

EJEMPLOS

EJEMPLOS

VENTAJAS
1. Es ms fcil pensar las soluciones y muchos detalles procedurales son resueltos automticamente por el propio lenguaje. 2. 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.

VENTAJAS
3. Cada predicado (procedimiento) puede ser ejecutado, validado y examinado independiente e individualmente. 4. No tiene variables globales, ni asignacin. Cada relacin est auto contenida, lo que permite una mayor modularidad, portabilidad y reusabilidad de relaciones entre programas.

DESVENTAJAS
1. La resolucin automtica no siempre es eficiente, por lo que eventualmente se podra dar una respuesta incorrecta a una consulta. 2. Poco eficientes. 3. Poco utilizado en aplicaciones reales. 4. Algunas veces es incapaz de reconocer que un problema es (para su propio conocimiento) inaplicable o insuficiente.

DESVENTAJAS
5. 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. 6. Los motores de inferencia poseen algunos lmites.

También podría gustarte