Mejora del rendimiento de la reflexión estructural mediante técnicas de compilación Jit
- Francisco Ortín Soler Zuzendaria
Defentsa unibertsitatea: Universidad de Oviedo
Fecha de defensa: 2007(e)ko martxoa-(a)k 29
- Juan Manuel Cueva Lovelle Presidentea
- Darío Álvarez Gutiérrez Idazkaria
- José Baltasar García Pérez-Schofield Kidea
- José Manuel Gutiérrez Llorente Kidea
- Manuel Pérez Cota Kidea
Mota: Tesia
Laburpena
Lenguajes dinámicos, como Python o Ruby, se ejecutan habitualmente sobre una máquina virtual implementada como un intérprete, aprovechando las ventajas que ofrecen, Esto, junto con el mayor número de operaciones que deben realizar durante la ejecución, implica que el rendimiento de las aplicaciones realizadas con estos lenjuajes es menor que el ofrecido por los lenguajes estáticos. Existen técnicas que mejoran considerablemente el rendimiento de las aplicacones que se ejecutan sobre máquinas virtuales, como la compilación Justo a Tiempo (Just in Time, JIT), permitiendo usar estas plataformas para el desarrollo de sistemas comerciales. Esta tesis empleará el mismo principio descrito para optimizar lenguajes dinámicos. Partiendo de una máquina virtual profesional con compilación JIT, establecemos modificaciones a su modelo computacional para incorporar las características de reflexión estructural ofrecidas por los lenguajes dinámicos, evaluando la mejora del rendimiento en tiempo de ejecución. Con ello trataremos de proporcionar un soporte integrado y eficiente para dichas características dentro de la máquina, de manera que sea posible emplearla para implementar y soportar lenguajes dinámicos sobre la misa, mejorando su rendimiento en tiempo de ejecución respecto a otras implemetnaciones existentes. La compatibilidad con el código heredado se mantendrá totalmente. Para todo ello, se diseña un nuevo modelo computacional que añade al modelo orientado a objetos basado en clases de la máquina de partida, otro modelo que utiliza principios del modelo de orientación a objetos basado en prototipos. Adicionalmente, se diseñan un conjunto de primitivas para soportar las características de reflexión estructural ofrecidas por los lenguajes dinámicos. Dichas primitivas se implementan de una forma integrada en su estructura, logrando que estas nuevas capacidades sean parte de la funcionalidad básica ofrecida por el sistema extendido. se modific