Noticias

Paper sobre tipado gradual de Éric Tánter recibe reconocimiento en Simposio de Lenguajes Dinámicos (DLS)

Octubre, 2023.- El premio “Most Notable Paper Award” del 19th Dynamic Language Symposium reconoce el trabajo de investigación más influyente, con 10 años de perspectiva, y este año el artículo destacado es “Cast Insertion Strategies for Gradually-Typed Objects” (2013), de Esteban Allende, Johan Fabry y Éric Tanter, todos, en ese momento, del Departamento de Ciencias de la Computación de la Universidad de Chile y el Laboratorio Pleiad

Éric Tanter

El tipado gradual (Gradual Typing) permite una integración fluida y progresiva de los lenguajes de programación dinámicos y estáticos: este trabajo explora los costos, tanto a micro como macro escala, de diversas estrategias que buscan proteger el tipado gradual en un lenguaje de programación orientado a objetos, examinando cómo estas diferentes estrategias afectan a los componentes del código tipados, no tipados y ambos. 

El 19th Simposio de Lenguajes Dinámicos (DLS) es una de las conferencias de ACM SIGPLAN, que se enfoca en la discusión de lenguajes de tipado dinámico, su implementación y aplicación. DLS entrega un espacio para los y las investigadoras, y quienes trabajan en aplicaciones prácticas, se reúnan y compartan sus conocimientos, experiencias e ideas para investigaciones futuras y desarrollo en el área.

Éric Tánter, investigador del Instituto Milenio Fundamentos de los Datos, destaca que el tipado gradual hace 10 años era algo bastante nuevo, con avances teóricos importantes pero con pocas implementaciones en lenguajes de programación reales. La tesis de doctorado de Esteban Allende se enfocó en implementar gradual typing para el lenguaje Smalltalk. Al trabajar en esta implementación, nos dimos cuenta de varios desafíos para implementar gradual typing en lenguajes orientado a objetos, y este paper presenta un análisis de estos problemas, y varias posibles soluciones”.

En DLS, lo destacan como una contribución seminal a la comprensión del rendimiento y performance del gradual typing, que desde esa fecha, se ha transformado en un área de investigación importante. “Todas las estrategias usadas en lenguajes gradualmente tipados hoy, pueden trazar su linaje a las estrategias descritas y propuestas en este paper, especialmente, el enfoque híbrido propuesto ha sido adaptado numerosas veces por muchos sistemas, dando a este trabajo un impacto de larga duración que trasciende su alcance original”, destacan en el reconocimiento. 

En años posteriores, varios trabajos se enfocaron en cómo implementar gradual typing, los problemas de eficiencia que puede traer, y otros desafíos. También, desde la industria se empezó a proponer varios lenguajes con tipos graduales, por lo que este premio llega a reconocer el impacto que este trabajo tuvo sobre esos esfuerzos posteriores, destacan desde el simposio.

Para Éric Tánter, en el estudio de lenguajes dinámicamente tipados, el tipado gradual es una línea muy importante. “Pero no es la única: sigue siendo muy activa la línea de cómo optimizar la implementación de lenguajes dinámicos, y cómo evolucionarlos para contextos emergentes (programación cloud, AI, etc.)”.

Estáticos y dinámicos y graduales

Los lenguajes de programación se pueden dividir en dos grandes grupos: de tipado estático, en los cuales la comprobación de tipos se realiza en tiempo de complicación (como Java, C++, Scala, OCaml, entre otros), y lenguajes de tipado dinámico, en la cual la comprobación de tipos se realiza en tiempo de ejecución (tales como JavaScript, Python, Ruby, etc). 

Ambas familias tienen (des)ventajas duales: el tipado estático asegura detección temprana de errores y permite ciertas optimizaciones, pero brinda cierta complejidad e impone restricciones conservadoras, mientras el tipado dinámico es más flexible y simple, pero es más costoso en general, y deja el reporte de errores a la ejecución misma del programa.

El tipado gradual o gradual typing es justamente una forma de combinar las fuerzas de cada familia de lenguajes, y como testigo del interés de esta línea, muchos lenguajes dinámicos ahora tienen sistemas de tipos opcionales/graduales (TypeScript para JavaScript, Python 3 y sus type hints, Hack para PHP, Sorbet para Ruby, etc.). 

More news
View : All
Annual
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
Biannual
1st semester
2nd semester
Monthly
January
February
March
April
May
June
July
August
September
October
November
December
No news in this category
Show more
Nothing to show