Download Curso 2006-07 - cvirtual.ual.es
Document related concepts
Transcript
Curso: 2006-2007 Centro: Escuela Politécnica Superior Estudios: Ingeniero en Informática Asignatura: Programación Lógica y Funcional Ciclo: 2º Curso: Cuatrimestre: 2º Carácter: Optativa Créditos teóricos: 3 Créditos prácticos: 3 Profesor/es: Jesús M. Almendros Jiménez Area: Lenguajes y Sistemas Informáticos _______________________________________________________________________ TEMARIO Programa de teoría Primera parte: Programación funcional 1. Conceptos fundamentales. 1.1. Estilos de programación. 1.2. Evaluación de expresiones. 1.3. Definición de funciones. 1.4. El cálculo l. 1.5. Disciplina de tipos. 2. Tipos de datos. 2.1. Valores numéricos y booleanos. 2.2. Caracteres y cadenas. 2.3. Tipos enumerados. 2.4. Tuplas. 2.5. Tipos construidos. 2.6. Tipos sinónimos. 3. Programación funcional con listas. 3.1. El tipo de datos de las listas. 3.2. Funciones que operan con listas. 3.3. Intervalos y listas intensionales. 3.4. Operadores de acumulación. 3.5. Aplicaciones de las listas. 4. Programación funcional con otros tipos de datos. 4.1. Arboles. 4.2. Aplicaciones de los árboles. 4.3. Otros tipos de datos recursivos. 4.4. Tipos de datos abstractos. 5. Evaluación perezosa. 5.1. La estrategia de evaluación perezosa. 5.2. Técnicas de programación funcional perezosa. Segunda parte: Programación lógica 1. Fundamentos de la programación lógica. 1.1. Repaso de la lógica de primer orden. 1.2. Unificación y resolución. 1.3. Cláusulas de Horn. Resolución SLD. 1.4. Programación lógica con cláusulas de Horn. 1.5. Semántica de los programas lógicos. 2. Programación en Prolog. 2.1. Representación clausada del conocimiento. 2.2. Consulta de una base de cláusulas Prolog. 2.3. Espacios de búsqueda Prolog. 2.4. Programación lógica con números, listas y árboles. 2.5. Control en Prolog. 2.6. Manipulación de términos. Predicados metalógicos. Programa de prácticas de laboratorio Las prácticas consistirán en el desarrollo de programas en Haskell (intérprete Hugs 98) y/o Prolog. Bibliografía básica Primera parte: Programación funcional • R. Bird, Introduction to Functional Programming using Haskell, 2nd edition, Prentice Hall Europe, 1998. (1st edition by R. Bird and P. Wadler, Prentice Hall, 1988.) • S. Thompson, Haskell: The Craft of Functional Programming, 2nd edition, Addison-Wesley, 1999. • P. Hudak, The Haskell School of Expression: Learning Functional Programming through Multimedia, Cambridge University Press, 2000. • F. Rabhi and G. Lapalme, Algorithms. A Functional Programming Approach, 2nd edition, Addison Wesley, 1999. • C. Reade, Elements of Functional Programming, Addison Wesley, 1989. Segunda parte: Programación lógica • K. Doets, From Logic to Logic Programming, The MIT Press, 1994. • L. Sterling and E.Shapiro, The Art of Prolog: Advanced Programming Techniques, The MIT Press, 1986. • D. Maier and D.S. Warren, Computing with Logic. Logic Programming with Prolog, Benjamin Cummings, 1988 Evaluación Examen Final y Entrega de Prácticas.