Paola
Indice de contenidos
•
Introducción o Requisitos o El entorno de desarrollo Prolog o Compatibilidad ISO-Prolog o Créditos Elementos del lenguaje o Comentarios o Variables lógicas § La variable anónima o Términos § Operadores o Culturilla Dando valor a las variables o El mecanismo de unificación o Ejemplos paradigmáticos o Culturilla Ejecutando cosaso Predicados y Objetivos § Ejemplos o Secuencias de objetivos § Varias soluciones o Backtracking § Ejemplo o Predicados predefinidos (built -in) El código o Cláusulas § Ejemplo simple § Ejemplo menos simple o Cláusulas sin cuerpo o Culturilla El shell de Prolog o Ejecutando el shell o Mi primer objetivo o Compilando y cargando codigo o Quiero irme de aquí Mi primer programa en Prolog o Cargando elcódigo o Predicados reversibles o Predicados no reversibles o Modos de uso o Culturilla Evaluación de expresiones aritméticas o Expresiones válidas Resumen y ejercicios o Ejercicios sobre términos y variables o Ejercicios sobre unificación
•
•
•
•
•
•
• •
Ejercicios sobre predicados
Introducción
Este tutorial de programación en Prolog constituye la primera entrega deuna s erie de cursillos orientados a aquellas personas que desconocen la programación declarativa relacional y su lenguaje rey: Prolog. Hablamos de programación lógica relacional porque existe toda una gama de lenguajes que siguen este paradigma, si bien, casi todos ellos están basados en Prolog. Quizás, La familia más importante de estos lenguajes sean los denominados CLP - Constraint LogicProgramming, que son exactamente iguales a Prolog pero con la capacidad adicional de resolver sistemas de ecuaciones. El conjunto de cursos está organizado de forma que las características más básicas y sencillas se encuentran en este primer tutorial. El resto se adentra en cuestiones avanzadas que raramente se suelen explicar pero cuyo dominio es fundamental para trabajar profesionalmente con Prolog,y para obtener ventajas sobre otros paradigmas de programación. ¿ Es usted escéptico respecto a Prolog ?. El típico tópico muestra este lenguaje como poco eficiente, sin utilidad práctica alguna, complicadísimo de manejar, etc. Sin ánimo de ofender, si Ud. encuentra Prolog imposible de entender, es que Ud. no es un profesional de la informática, porque la verdad es que requiere una ciertaformación en lógica matemática y en técnicas de programación. Pero no se desanime, porque otro objetivo de este curso es ayudarle a superar todos los desafios. En cuanto a la escasa utilidad práctica de Prolog podemos citar:
• • • • • • • • • • •
Generación de CGI's. Acceso a bases de datos desde páginas Web. Paralelización automática de programas. Programación distribuida y multiagente. Sistemasexpertos e inteligencia artificial. Validación automática de programas. Procesamiento de lenguaje natural. Prototipado rápido de aplicaciones. Bases de datos deductivas. Interfacing con otros lenguajes como Java y Tcl/Tk. ... (la lista es interminable) ...
En cuanto a la excasa eficiencia hemos de admitir que Prolog es aproximadamente diez veces más lento que el lenguaje C. Pero también hemos deadmitir que un programa en Prolog ocupa aproximadamente diez veces menos, en líneas de código y tiempo de desarrollo, que el mismo programa escrito en C. Además las técnicas de optimización de código en Prolog apenas están emergiendo en estos momentos. Algunos experimentos (optimistas) hacen pensar que la velocidad de ejecución de Prolog podría aproximarse a la de C en esta década.
RequisitosPara hacer unos primeros pinitos en Prolog se necesita unicamente dos cosas: un editor de texto y un entorno de desarrollo Prolog. Como editor de texto resulta altamente recomendable e l uso de Emacs. A continuación indicamos algunos links donde puedes descargarte entornos de desarrollo:
• •
CIAO Prolog. SWI Prolog.
Este curso también supone que el lector está familiarizado con:
•...
Regístrate para leer el documento completo.