Herramientas de usuario

Herramientas del sitio


introalg:taller09

Taller de Programación Declarativa

Introducción a los Algoritmos 2009

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.

Este año vamos a ver aproximaciones distintas a la programación declarativa: programación lógica (en prolog) y programación funcional (en haskell). Este tipo de programación tiene varias diferencias con la programación imperativa que quizás muchos de ustedes conozcan (C, C++, Visual Basic, Perl).

Clases

Mar 30 Clase 1 Introducción a programación declarativa, introducción a prolog, átomos, sintaxis, pequeño ejemplo.
Abr 6 Clase 2 Consolidación de conceptos, uso de la traza, analizando problemas.
Abr 13 Clase 3 Introducción a haskell, tipos, análisis por casos, pattern matching.
Abr 20 Clase 4 Repaso de programación funcional, modularización, definiciones locales.
Abr 27 Clase 5 Listas y recursión lineal en haskell y prolog.
May 4 Clase 6 Repaso de recursión, ejercicios de recursión.
May 11 Clase 7 Parcialito 1
May 18 Clase 8 Generalización de funciones recursivas en listas y alto orden. Aplicando generalizaciones.
Jun 1 Clase 9 Resolviendo problemas complejos.
Jun 8 Clase 10 Parcialito 2
Jun 15 Clase 11 La Guinda

Hay también una página con las soluciones a los ejercicios.

Programas

Intérprete de prolog (programación lógica)

Vamos a usar SWIProlog. Existen versiones para linux, windows, windows de 64 bits, mac sobre intel y mac sobre power pc.

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).
  • curso de Inteligencia Artificial e Ingeniería del Conocimiento en la Universidad Complutense de Madrid, desde donde hay muchos links a las referencias básicas de Prolog, todos ellos actualizados. Se los resumo acá (en la página del curso está esta información ampliada):
    • los mejores libros de Prolog, en inglés y castellano:
      • Sterling, Leon y Shapiro, Ehud. 2001. The Art of Prolog : advanced programming techniques. MIT Press, (5th Edition 2001).
      • Clocksin, William F. y Mellish, Christopher S. 1993. Programación en Prolog (traducción de “Programming in Prolog”). Gustavo Gili (en inglés, editado en Springer).
    • apuntes en castellano:
    • apuntes en inglés: los apuntes sobre prolog de Tim Smith, un profesor de un curso de prolog para inteligencia artificial en la Universidad de Edimburgo.

Programación funcional

introalg/taller09.txt · Última modificación: 2018/08/10 03:03 por 127.0.0.1