“Semántica operacional y su aplicación para el estudio de recolección de basura, en Lua 5.2”

11 Junio 2020 - Google Meet -UNC

Defensa de Tesis para optar al grado de Doctor en Ciencias de la Computación del Lic. Mallku Ernesto Soldevila Raffa bajo la dirección del Dr. Daniel Edgardo Friedlender (FAMAF - UNC) y la codirección del Dr. Luis Francisco (Beta) ZILIANI (FAMAF - UNC)

Resumen

Lua es un lenguaje de programación imperativo de scripting, que ofrece tipado dinámico, manejo automático de memoria, facilidades para la descripción de datos, y mecanismos de meta-programación para adaptar el lenguaje a dominios específicos. Es utilizado en proyectos de diversa naturaleza, desde desarrollo de juegos, de manera notable en juegos “AAA”, desarrollo de plugins, firewall de aplicaciones web, y en sistemas embebidos. Gracias al éxito de Lua es posible encontrar diversas implementaciones alternativas y analizadores estáticos. Sin embargo, la naturaleza informal de la especificación del lenguaje implica que quienes desarrollan esas herramientas no pueden proveer garantías formales de corrección para las mismas. En este trabajo presentamos una formalización de la semántica operacional de Lua 5.2, incluyendo recolección de basura (GC) y sus interfaces (finalizadores y tablas débiles; una forma de implementar referencias débiles). Validamos la semántica mediante su mecanización, utilizando PLT Redex, y el testeo de la misma con respecto a la suite de tests del intérprete oficial de Lua. A su vez, utilizamos las facilidades ofrecidas por PLT Redex para la mecanización de sistemas formales y testeo aleatorio de propiedades, para obtener evidencia de la propiedad de progreso de la semántica. Para GC proveemos un framework para razonar formalmente sobre propiedades de cualquier algoritmo de GC basado en un criterio sintáctico. Dentro del framework podemos formalizar y esbozar la demostración de propiedades sobre GC, incluyendo su corrección (sin considerar sus interfaces). La semántica formalizada y su mecanización podrían ayudar a proveer garantías formales de corrección para herramientas que realicen análisis estático de programas Lua, como también en el prototipado de nuevos conceptos de programación y extensiones para Lua.

Para la asistencia

Inscribase en el siguiente enlace y rellene el formulario hasta dos horas antes del evento.

Media hora antes de la exposición recibirá la conexión mediante correo electrónico.

Unase ala reunión unos minutos antes y desactive micrófono de su equipo.