Análisis de coste en programas funcionales usando CiaoPP

Munuera Mazarro, David (2020). Análisis de coste en programas funcionales usando CiaoPP. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S. de Ingenieros Informáticos (UPM), Madrid, España.

Description

Title: Análisis de coste en programas funcionales usando CiaoPP
Author/s:
  • Munuera Mazarro, David
Contributor/s:
  • Hermenegildo Salinas, Manuel
Item Type: Final Project
Degree: Grado en Matemáticas e Informática
Date: June 2020
Subjects:
Faculty: E.T.S. de Ingenieros Informáticos (UPM)
Department: Inteligencia Artificial
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (307kB) | Preview

Abstract

La estimación y medición del uso de recursos y costes de los programas es un área clave en la investigación del desarrollo de software, ya que permite al software desarrollado ser más económico, usable y fiable. Hay varios enfoques dentro de esta área, como el profiling, que requiere de la ejecución del programa a analizar para poder medir el uso de recursos. Esto no siempre es posible dependiendo de la escala y naturaleza del software, y en los casos en los que se puede, las estimaciones serán más o menos acertadas dependiendo de la calidad de la herramienta usada para dicho análisis. El análisis estático intenta solventar este problema ofreciendo garantías acerca del comportamiento de un programa antes de su ejecución; sin embargo, a menudo es necesario anotaciones añadidas sobre el programa u otro tipo de asistencia por parte del programador, lo cual puede llegar a ser impráctico. Idealmente, se persigue llegar a métodos de análisis que sean estáticos y completamente automáticos para poder razonar acerca del software y su uso de recursos. Mientras que existen herramientas para realizar análisis estático sobre programas en escritos en Haskell, ninguna es completamente automática. Este trabajo propone y desarrolla hs-to-ciao, una herramienta en forma de plugin para GHC (el compilador estándar de Haskell) para traducir programas en Haskell a código fuente en Ciao Prolog con el fin de aprovechar las posibilidades que ofrece CiaoPP, el preprocesador de Ciao, que ofrece un framework para análisis de recursos. La herramienta cumple un doble propósito: por un lado, ofrece una solución completamente automática para análisis estático de recursos para Haskell; por otro, se puede usar como transpilador de propósito general para traducir programas escritos en Haskell a programas escritos en Ciao que usan la sintaxis funcional ofrecida por el lenguaje a modo de extensión.---ABSTRACT---Estimating and measuring resource and cost usage of programs is a key research area in software development, as that allows developed software to be more cost-effective, more usable, and more reliable. There are several approaches to this, like profiling, which require you to run the program you want to analyze in order to measure resource usage. This is not always feasible depending on the scale and character of the software, and even when it is doable, what you get are estimations that can be more or less accurate depending on the quality of the tool used for performing said analysis. Static analysis tries to address this by making guarantees about a program’s behavior prior to its execution; however, since this often requires added annotations or some sort of aid coming from the programmer, they can be impractical to work with. Ideally, we are striving for static, fully automatic ways of reasoning about software and its resource usage. While there exist tools for doing static resource analysis over Haskell programs, none of them are fully automatic. This thesis proposes and develops hs-to-ciao, a tool in the form of a plugin for GHC (the industry standard Haskell compiler) for translating Haskell programs into Ciao Prolog source code in order to take advantage of the already existing resource analysis framework within Ciao’s preprocessor, CiaoPP. The tool serves a double purpose: on the one hand, it provides a fully automatic and static resource analysis solution for Haskell; on the other hand, it can be used as a general purpose source-to-source compiler from Haskell programs into Ciao programs that use the functional syntax provided by the language as an extension.

More information

Item ID: 63139
DC Identifier: http://oa.upm.es/63139/
OAI Identifier: oai:oa.upm.es:63139
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 22 Jul 2020 08:18
Last Modified: 22 Jul 2020 08:18
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM