Implementación de un sistema de fusión

Domínguez, Facundo

Supervisor(es): Pardo, Alberto

Resumen:

Desde que se empieza a escribir software a gran escala, la elaboración de metodologías que permitan escribir, verificar, mantener y reusar el código se han vuelto el centro de estudio del área que hoy se conoce como Ingeniería de Software. Con los años diversos paradigmas de programación y metodologías de desarrollo han fomentado intensamente la construcción y el uso de componentes modulares que son combinadas para obtener soluciones a problemas concretos. El empleo de componentes modulares en el paradigma de programación funcional acarrea la necesidad de manipular estructuras de datos que sirvan como medio de comunicación entre unas y otras. Dependiendo de la situación el uso intenso de un diseño de estas características puede ser un factor de ineficiencia debido a la generación y consumo de las estructuras de datos intermedias. Muchas veces ocurre que si el diseño no se hubiese hecho modular el programa seguramente sería menos claro, pero más eficiente, dado que no tendría que computar el fardo de tales estructuras. Existen técnicas de transformación de programas funcionales, que dado un programa escrito en forma modular, pueden combinar diferentes partes del mismo para construir un programa equivalente que no emplee estas estructuras de datos intermedias. Una serie importante de trabajos apuntan a automatizar estas técnicas para poder incluirlas dentro de las etapas de un compilador. Así los desarrolladores de software pueden beneficiarse del diseño modular sin preocuparse por cuestiones de eficiencia. Nuestro objetivo es presentar una implementación de un sistema que realiza automáticamente algunas de estas transformaciones sobre programas escritos en Haskell. El presente trabajo se desarrolla en el marco de un proyecto CSIC[Par03].


Detalles Bibliográficos
2004
FUSION DE PROGRAMAS
DEFORESTACION
TEORIA DE CATEGORIAS
PROGRAMAION FUNCIONAL
Español
Universidad de la República
COLIBRI
http://hdl.handle.net/20.500.12008/3061
Acceso abierto
Licencia Creative Commons Atribución – No Comercial – Sin Derivadas (CC BY-NC-ND 4.0)
Resumen:
Sumario:Desde que se empieza a escribir software a gran escala, la elaboración de metodologías que permitan escribir, verificar, mantener y reusar el código se han vuelto el centro de estudio del área que hoy se conoce como Ingeniería de Software. Con los años diversos paradigmas de programación y metodologías de desarrollo han fomentado intensamente la construcción y el uso de componentes modulares que son combinadas para obtener soluciones a problemas concretos. El empleo de componentes modulares en el paradigma de programación funcional acarrea la necesidad de manipular estructuras de datos que sirvan como medio de comunicación entre unas y otras. Dependiendo de la situación el uso intenso de un diseño de estas características puede ser un factor de ineficiencia debido a la generación y consumo de las estructuras de datos intermedias. Muchas veces ocurre que si el diseño no se hubiese hecho modular el programa seguramente sería menos claro, pero más eficiente, dado que no tendría que computar el fardo de tales estructuras. Existen técnicas de transformación de programas funcionales, que dado un programa escrito en forma modular, pueden combinar diferentes partes del mismo para construir un programa equivalente que no emplee estas estructuras de datos intermedias. Una serie importante de trabajos apuntan a automatizar estas técnicas para poder incluirlas dentro de las etapas de un compilador. Así los desarrolladores de software pueden beneficiarse del diseño modular sin preocuparse por cuestiones de eficiencia. Nuestro objetivo es presentar una implementación de un sistema que realiza automáticamente algunas de estas transformaciones sobre programas escritos en Haskell. El presente trabajo se desarrolla en el marco de un proyecto CSIC[Par03].