¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Taller de Programación Declarativa
Introducción a los Algoritmos 2009
Este año vamos a ver dos paradigmas de programación: programación lógica y programación funcional. En ambos casos se trata de programación declarativa, que tiene varias diferencias con el paradigma de programación imperativa que quizás muchos de ustedes conozcan (C, C++, Visual Basic, Perl).
Las clases serán los lunes en el aula D2 (laboratorio de las baterías D), en dos comisiones: comisión 1, de 11:30 a 14:30, comisión 2, de 14:30 a 17:30.
Clases
Mar 30 | Clase 1 | Introducción a programación declarativa, Introducción a prolog, átomos, sintaxis, pequeño ejemplo. |
Abr 6 | Clase 2 | Ampliación de la clase anterior. |
Abr 13 | Clase 3 | Dos ejemplos de razonamiento en prolog. |
Abr 20 | Clase 4 | Introducción a programación funcional, manejo de Hugs, inferencia de tipos, tuplas, análisis por casos |
Abr 27 | Clase 5 | Pattern matching numérico, tuplas y listas, divide y conquista, estilo de código |
May 4 | Clase 6 | Recursión lineal, aplicaciones, filtros, acumuladores |
May 11 | Clase 7 | Parcialito 1 |
May 18 | Clase 8 | generalización de las funciones vistas (map, filter, fold, etc.), alto orden |
Jun 1 | Clase 9 | Aplicando generalizaciones a funciones complejas, recursión en dos argumentos |
Jun 8 | Clase 10 | Parcialito 2 |
Jun 15 | Clase 11 | La Guinda |
Problemas
- Problemario del taller, con todos los problemas que vas a resolver en el taller de Haskell.
- Wiki de Scripts Haskell, aca podés dejar código Haskell de manera libre.
Programas
Intérprete de prolog (programación lógica)
Vamos a usar SWIProlog.
Intérprete de haskell (programación funcional)
Vamos a usar Hugs.
Las principales distribuciones Linux (Debian, Ubuntu, Fedora y Gentoo) incluyen Hugs como un paquete de instalación.
Para los usuarios de Windows y *nix, hay versiones para bajar desde Downloading Hugs.
En Windows tenemos MinHugs una versión pequeña de solo 1.4MiB de descarga.
Bibliografía
Programación lógica
Hay varios cursos muy claros y didácticos para aprender Prolog on-line, los que más me gustan a mí (de más a menos):
Learn Prolog Now!, en inglés (también en |libro.
Programación funcional
- José Gallardo, Paco Gutiérrez y Blas Ruiz, "Una introducción agradable a Haskell versión 98", Febrero de 2001.
- Traducción de "A gentle introduction to Haskell Version 98".
- Blas C. Ruiz, Francisco Gutiérrez, Pablo Guerrero y José E. Gallardo, "Razonando con Haskell", Thompson, 2004.
- Jose E. Labra G., Introducción al lenguaje Haskell, Universidad de Oviedo, Departamento de Informática, Octubre 1998.
- Simon Thompson, Haskell The Craft of Functional Programming, 2da edición, Addison-Wesley, 1999.
- Mucho material en inglés de Introductions to Haskell.