Desarrollo de una metodología para la optimización de código intermedio de bajo nivelaplicación y análisis de la optimización al código-byte de Java

  1. DIEZ PLATAS, M. LUISA
Dirigida por:
  1. Paloma Centenera Centenera Director/a

Universidad de defensa: Universidad Pontificia de Salamanca

Fecha de defensa: 29 de mayo de 2015

Tribunal:
  1. Jesús Carretero Pérez Presidente/a
  2. Víctor Martín García Secretario/a
  3. Luis Joyanes Aguilar Vocal
  4. Salvador Sánchez Alonso Vocal

Tipo: Tesis

Teseo: 403871 DIALNET

Resumen

La compilación de un programa escrito en un lenguaje de código portable como Java o los lenguajes de la plataforma .NET genera un código de tipo byte que será procesado por la máquina virtual correspondiente. Tras el análisis de los códigos-byte se observa que presentan ineficiencias que podrían ser corregidas en un proceso de optimización. Por las características de los entornos de estos lenguajes las optimizaciones que se realizan sobre ellos se suelen llevar a cabo en la máquina virtual. Esta forma de optimización grava el tiempo de ejecución de los programas , factor crítico en los tipos de aplicaciones que se desarrollan con estos lenguajes. Algunas de las optimizaciones no se pueden realizar en otro momento debido a que son dependientes de la máquina, sin embargo, otras muchas no lo son y podrían, por tanto, realizarse en tiempo de compilación. Esto requiere la implementación de un optimizador para cada tipo de código byte que sería dependiente del código. Además hay que tener en cuenta que debido al bajo nivel de abstracción de este tipo de códigos, la aplicación de técnicas de optimización de código intermedio sobre ellos presenta una gran complejidad. En la presenta tesis doctoral se diseña un modelo metodológico para el desarrollo de optimizadores de código intermedio de tipo byte. Estos optimizadores, gracias a la metodología aplicada, son independientes del código que se optimiza y a su vez mantienen la portabilidad de los mismos. El modelo desarrollado somete al código byte que se optimiza a tres procesos. Un primer proceso de transformación del código byte a una forma de representación de código intermedio de un nivel más alto, conocida como forma de asignación estática, que facilita el análisis y la optimización global del código. El segundo proceso extrae información del código transformado y aplica sobre el mismo las técnicas de optimización. El tercer proceso traduce el código optimizado al código byte original.