Objetivos
La Programación declarativa es un paradigma de
programación basado en la lógica en el que se
estudian de forma simple
muchos aspectos avanzados de los lenguajes de programacion modernos. El
objetivo global de la asignatura es profundizar en los aspectos formales y
aplicados de la programación declarativa y, en particular, en los dos
paradigmas más representativos del estilo de programación
declarativa: la
programación funcional y la programación lógica,
siguiendo un esquema
uniforme basado en explotar la lógica más apropiada para
cada estilo: una
lógica ecuacional para el estilo funcional y una lógica
clausal para el estilo lógico.
Temario
Prácticas
En el laboratorio se trabaja en un entorno con
facilidades para desarrollar aplicaciones GUI: se aprenden técnicas
de programación eficientes en los lenguajes más
representativos de cada
paradigma (Haskell,
Maude y
Prolog) y se introducen
técnicas y aplicaciones
avanzadas
como el procesamiento de documentos XML, el desarrollo rápido de
intérpretes y compiladores,
etc.
Evaluación
Examen sobre los contenidos teóricos de la asignatura y
valoración de las prácticas realizadas. Trabajos personales.
Bibliografía
[Bir00] Richard Bird. Introducción a la Programación Funcional con Haskell. Prentice-Hall, 2000.
[HR04] Seif Haridi and Peter van Roy. Concepts, Techniques, and Models of Computer Programming. The MIT Press, 2004.
[Hud00] Paul Hudak. The Haskell School of Expression. Learning functional programming through multimedia. Cambridge University Press, 2000.
[NM00] Ulf Nilsson and Jan Maluszynski Logic, Programming and Prolog (2ed) John Wiley & Sons Ltd, 2000.
[PE93] Rinus Plasmeijer and Marko van Eekelen. Functional
Programming and Parallel Graph Rewriting. Addison-Wesley, 1993.