
Defensa Tesis Licenciatura Angel Yan
19 diciembre, 2022 @ 6:00 pm - 7:00 pm
Título: Recolección de Tipos en VMs con Compilación Just-in-Time
Director: Hernán Wilkinson
Jurados: Emilio Oca y Agustín Martinez
Resumen:
LiveTyping es un sistema de anotación automática de tipos que busca llevar a lenguajes dinámicos algunos de los beneficios de contar con información de tipos estática sobre los programas. Esta técnica se encuentra implementada en la versión Stack de la máquina virtual OpenSmalltalk-VM y es utilizada en el dialecto Cuis de Smalltalk para mejorar la experiencia de desarrollo agregando la posibilidad de inspeccionar del tipo de los términos, code completion y refactorings automatizados más precisos, chequeo e inferencia de tipos, entre otras mejoras. LiveTyping instrumenta el intérprete de la Stack VM para recolectar la información de tipos de los términos, algo que tiene un impacto no menor en el rendimiento de la máquina virtual.
La versión Cog de OpenSmalltalk-VM mejora sustancialmente la eficiencia de la Stack VM con la introducción de un compilador Just-in-Time. La implementación de LiveTyping en esta VM resulta atractiva como forma de mitigar su impacto en el rendimiento. El objetivo de este trabajo es implementar LiveTyping en una máquina virtual con compilación JIT para poder tener los beneficios que esta técnica provee con un menor impacto de performance. En este informe describimos la arquitectura de OpenSmalltalk-VM, detallamos nuestra implementación de LiveTyping sobre la Cog VM y presentamos los resultados del análisis de su performance.
Palabras clave: LiveTyping, anotación de tipos, tipado dinámico, máquina virtual, com- pilación Just-in-Time, Smalltalk.