Un sistema de tipos gradual para el lenguaje funcional Elixir
Supervisor(es): Pardo, Alberto - Viera, Marcos
Resumen:
Elixir es un lenguaje funcional, relativamente nuevo, con tipado dinámico, que busca ser muy potente y tener una sintaxis moderna. Además, es un lenguaje open source, lo que permite el estudio de su código fuente y la colaboración de la comunidad en su crecimiento. En este proyecto se propone un sistema de tipos que haga posible ejecutar un chequeo de tipos de forma estática para un fragmento significativo de Elixir, sin perder su esencia y flexibilidad. El sistema de tipos que se presenta no requiere ningún tipo de cambios en la sintaxis del lenguaje. Está basado en el concepto de tipado gradual, donde el programador decide el grado de chequeos estáticos que quiere que se realicen en su programa. La información de los tipos es proporcionada mediante firmas de funciones con la notación que Elixir provee, a diferencia de otras soluciones donde las colisiones de tipos son detectadas por inferencia. Este enfoque busca combinar los beneficios que el tipado estático y dinámico ofrecen. Se implementa un prototipo, también en Elixir, de un analizador de tipos basado en el sistema de tipos definido. Además, se realizan experimentos de uso de la biblioteca así como de aceptación del enfoque del sistema de tipos. El trabajo deriva en un paper presentado en SBLP 2020: 24th Brazilian Symposium on Programming Languages.
2020 | |
Programación funcional Elixir Sistema de tipos Gradual typing |
|
Español | |
Universidad de la República | |
COLIBRI | |
https://hdl.handle.net/20.500.12008/26407 | |
Acceso abierto | |
Licencia Creative Commons Atribución - No Comercial - Sin Derivadas (CC - By-NC-ND 4.0) |
Sumario: | Elixir es un lenguaje funcional, relativamente nuevo, con tipado dinámico, que busca ser muy potente y tener una sintaxis moderna. Además, es un lenguaje open source, lo que permite el estudio de su código fuente y la colaboración de la comunidad en su crecimiento. En este proyecto se propone un sistema de tipos que haga posible ejecutar un chequeo de tipos de forma estática para un fragmento significativo de Elixir, sin perder su esencia y flexibilidad. El sistema de tipos que se presenta no requiere ningún tipo de cambios en la sintaxis del lenguaje. Está basado en el concepto de tipado gradual, donde el programador decide el grado de chequeos estáticos que quiere que se realicen en su programa. La información de los tipos es proporcionada mediante firmas de funciones con la notación que Elixir provee, a diferencia de otras soluciones donde las colisiones de tipos son detectadas por inferencia. Este enfoque busca combinar los beneficios que el tipado estático y dinámico ofrecen. Se implementa un prototipo, también en Elixir, de un analizador de tipos basado en el sistema de tipos definido. Además, se realizan experimentos de uso de la biblioteca así como de aceptación del enfoque del sistema de tipos. El trabajo deriva en un paper presentado en SBLP 2020: 24th Brazilian Symposium on Programming Languages. |
---|