Mejora del rendimiento de la reflexión estructural mediante técnicas de compilación Jit

  1. Redondo López, José Manuel
Supervised by:
  1. Francisco Ortín Soler Director

Defence university: Universidad de Oviedo

Fecha de defensa: 29 March 2007

Committee:
  1. Juan Manuel Cueva Lovelle Chair
  2. Darío Álvarez Gutiérrez Secretary
  3. José Baltasar García Pérez-Schofield Committee member
  4. José Manuel Gutiérrez Llorente Committee member
  5. Manuel Pérez Cota Committee member

Type: Thesis

Teseo: 136528 DIALNET

Abstract

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