YAHU: una biblioteca de interfaz gráfico de usuario de medio nivel para Haskell - Fernández-Rodríguez, Jose David (My University, 2013)
Denominamos Interfaz Gráfico de Usuario (o GUI del inglés Graphics User Interface) a toda aplicación que interaccione con el usuario a través de un sistema gráfico de ventanas por medio del ratón y el teclado. Para diseñar este tipo de aplicaciones se cuenta con las bibliotecas de GUI, marcos de programación que facilitan en gran medida la implementación de este tipo de programas. Haskell es el lenguaje funcional puro de referencia. El objetivo de este proyecto es desarrollar una biblioteca de GUI para Haskell, que denominaremos YAHU, acrónimo de Yet Another Haskell graphics User interface. La idea es proporcionar al programador de entornos gráficos de usuario un marco de desarrollo básicamente parecido a los usuales en los entornos imperativos, para que la curva de aprendizaje sea pequeña, y pueda utilizarse desde la misma introducción del programador al lenguaje Haskell, pero proporcionando un nivel de abstracción mayor que el usual en las bibliotecas para los lenguajes imperativos que facilite las tareas de programación. Así, esperamos aportar una buena contribución al desarrollo de Haskell. Otro de los objetivos del proyecto es facilitar la portabilidad de la biblioteca, si bien el trabajo de desarrollo se hará en un entorno win32. Para lograr este objetivo, se implementa YAHU sobre la parte de bajo nivel de WxHaskell, que constituye una traslación al lenguaje Haskell de la biblioteca de GUI WxWindows, implementada en C++. El propósito explícito de WxWindows es proporcionar una interfaz de programación portable a través de múltiples compiladores, sistemas operativos y arquitecturas. Por otro lado, para escribir YAHU usamos el estándar Haskell98, lo que asimismo garantiza la compilación de la propia biblioteca YAHU en un amplio rango de configuraciones, si bien implementaremos estructuras sintácticas alternativas basadas en extensiones al estándar donde sea conveniente.
Keywords: Interfaces gráficas de usuario; GUI; Haskell; Programación funcional; Interfaz gráfico de usuario