Manual de prolog
José A. Alonso Jiménez
Grupo de Lógica Computacional Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Sevilla, 17 de Junio de 2006 (versión de 25 de septiembre de 2006)
2
José A. Alonso
Esta obra está bajo una licencia Reconocimiento–NoComercial–CompartirIgual 2.5 Spain de Creative Commons.
Sepermite: copiar, distribuir y comunicar públicamente la obra hacer obras derivadas Bajo las condiciones siguientes: Reconocimiento. Debe reconocer los créditos de la obra de la manera especificada por el autor. No comercial. No puede utilizar esta obra para fines comerciales. Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obragenerada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.
Esto es un resumen del texto legal (la licencia completa). Para ver una copia de esta licencia, visitehttp://creativecommons.org/licenses/by-nc-sa/2.5/es/ o envie una carta a Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Introducción a la programación lógica con Prolog
3
Índice
1. Introducción 2. El sistema deductivo de Prolog 2.1. Deducción Prolog en lógica proposicional . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Deducción Prolog en lógica relacional . . . . . . . . . . . . . . . . .. . . . . . . . . 2.3. Deducción Prolog en lógica funcional . . . . . . . . . . . . . . . . . . . . . . . . . . 3. Listas 3.1. Representación de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Concatenación de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. La relación de pertenencia . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . 4. Disyunciones 5. Operadores 6. Aritmética 7. Control mediante corte 8. Negación 9. El condicional 10. Predicados sobre tipos de término 11. Comparación y ordenación de términos 12. Procesamiento de términos 13. Procedimientos aplicativos 14. Todas las soluciones Bibliografía 4 4 4 8 10 13 13 15 16 17 18 19 20 23 26 27 28 30 31 32 33
4
José A. Alonso
1. Introducción
Eneste trabajo presentamos el lenguaje de programación lógica Prolog con un doble objetivo: como una aplicación de la deducción automática estudiada en la asignatura de “Lógica informática” y como soporte de la asignatura de “Programación declarativa”. Los textos fundamentales de Prolog son 1. I. Bratko. Prolog Programming for Artificial Intelligence. Addison–Wesley, 3 edition, 2001. 2. W. F.Clocksin y C. S. Mellish. Programming in Prolog. Springer–Verlag, 4 edition, 1994. 3. L. Sterling y E. Shapiro. The Art of Prolog. MIT Press, second edition, 1994. 4. T. Van Le. Techniques of Prolog Programming (with implementation of logical negation and quantified goals). John Wiley, 1993. Algunas introducciones a Prolog publicadas en la Red son 1. P. Blackburn, J. Bos y K. Striegnitz. Learn PrologNow!, 2001. 2. T. Cornell. Introduction to Prolog, 1998. 3. U. Endriss. An Introduction to Prolog Programming. Universiteit van Amsterdam, 2005. 4. J. E. Labra. Programación práctica en Prolog. Cuaderno Didáctico Num. 13. Ed. Servitec, 1998. 5. F. Llorens y M. J. Castel. Prácticas de Lógica: Prolog. Universidad de Alicante, 2001. 6. H. Pain y R. Dale. An Introduction to Prolog, 2002. 7. G. Ritchie.Prolog Step–by–Step. University of Edinburgh, 2002. 8. D. Robertson. Prolog. University od Edinburgh, 2003. 9. T. Smith. Artificial Intelligence Programming in Prolog. University of Edinburgh, 2004.
2. El sistema deductivo de Prolog
En esta sección vamos a presentar el procedimiento básico de deducción de Prolog: la resolución SLD. La presentación la haremos ampliando sucesivamente la potencia...
Regístrate para leer el documento completo.