Download Curso 2006-07 - cvirtual.ual.es

Document related concepts

Haskell wikipedia , lookup

Philip Wadler wikipedia , lookup

Mercury (lenguaje) wikipedia , lookup

Programación funcional wikipedia , lookup

Curry (lenguaje de programación) wikipedia , lookup

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.