martes, 16 de noviembre de 2010

OPTIMIZACIÓN DE CÓDIGO

La optimización de código puede realizarse durante la propia generación o como paso adicional, ya sea intercalado entre el análisis semántico y la generación de código (se optimizan las cuádruplas) o situado después de ésta.
 
En esta fase se intenta mejorar el código, en el sentido de reducir la cantidad de resursos (tiempo y memoria) necesarios.

Clasificación de optimizaciones:
  1. Dependientes de la máquina.
    • Asignación de registros (ver capítulo anterior).
    • Instrucciones especiales ("idioms").
    • Reordenación del código.
  2. Independientes de la máquina.
    • Ejecución en tiempo de compilación.
    • Eliminación de redundancias.
    • Cambio de orden.
    • Reducción de frecuencia de ejecución (invariancias).
    • Reducción de fuerza.
Optimización y depuración suelen ser incompatibles. Por ejemplo, si se elimina totalmente una instrucción, puede ser imposible poner una parada en ella para depuración. Ejemplo:
    x = x;

No hay comentarios:

Publicar un comentario