OPTIMIZACION

Páginas: 7 (1630 palabras) Publicado: 14 de mayo de 2013
FACULTAD DE CIENCIAS


ASIGNATURA : Teoría de Lenguajes


ESCUELA : Ingeniería de sistemas e Informática


TRABAJO : Optimización de Código.


AUTORES:
CODIGO
APELLIDOS/NOMBRES
061.0125.040
Aponte Farromeque Irvin
052.0125.105
López Dolores Arturo
071.0125.412
Aguedo del Castillo Raulitho




PROFESOR : Ing. Miguel Angel Silva Zapata.



FECHA: Hz, 15 dediciembre de 2013.







Optimización
Objetivo: Obtener código que se ejecuta más eficientemente según:
Optimización temporal (tiempo de ejecución)
Optimización espacial (espacio de memoria utilizado)
Funcionamiento:
Revisa el código generado a varios niveles de abstracción y realiza las optimizaciones aplicables al nivel de abstracción.
Representación de código intermedio:
Árbolsintáctico abstracto. (sub expresiones redundantes, reducción de frecuencia)
Tuplas o cuádruplas. (Uso de los registros o de las var. temporales)
Ensamblador/código máquina. (convertir saltos a saltos cortos, reordenar instrucciones)
Representaciones de código para extraer información. (grafos)
Condiciones:
El código optimizado se ha de comportar igual que el código de partida.
Hay que buscartransformaciones que no modifiquen el comportamiento del código según el comportamiento definido para el lenguaje de programación.
Optimización Local
Estas se realizan sobre el bloque básico.





Existen cuatro tipos principales de optimización local:
Ensamblamiento (Folding).
Propagación de constantes.
Reducción de potencia.
Reducción de sub expresiones comunes.




1. Ensamblamiento:Consiste en reemplazar las expresiones por su resultado, cuando se pueden evaluar en tiempo de compilación (resultado constante).
Ej.:
A = 3 + 4 + B + C → A = 7 + B + C
Estas optimizaciones, permiten que el programador realice cálculos entre constantes, representados explícitamente sin introducir ineficiencias.
Implementación:
Durante la generación del código (realizadaconjuntamente con el análisis sintáctico)
Se añade el atributo de constante temporal a los símbolos no terminales y a las variables de la tabla de símbolos.
Se añade el procesamiento de las constantes a las reglas de análisis de expresiones.
Optimiza: 2 + 3 + b → 5 + b (hay una suma de constantes (2 + 3) + b)
No optimiza: 2 + b + 3 → 2 + b + 3 (no hay una suma de constantes (2 + b) + 3)Posterior a la generación del código
Buscar partes del árbol donde se puede aplicar la propiedad conmutativa:
Sumas/ restas: las restas no son conmutativas → se transforman en sumas.
Multiplicaciones/divisiones: las divisiones no son conmutativas →se transforman en multiplicaciones.
Buscar las constantes y operarlas.
Reconstruir el árbol.









2. Propagación de constantes:
Desde quese considera a la variable un valor constante, hasta la siguiente asignación, se considera a la variable equivalente a la constante.
Este tipo de optimizaciones, permiten al programador, utilizar variables como constantes, sin introducir ineficiencias. Un ejemplo es el lenguaje C, donde no hay constantes, y serán equivalentes:
int a = 10;
#define a 10, con la ventaja que lavariable puede ser local.
Actualmente en C se puede definir: const int a = 10.
Implementación:
Separar el árbol en bloques básicos.
Cada bloque básico será una lista de expresiones y asignaciones.
En cada bloque básico:
Inicializar el conjunto de definiciones en conjunto vacío (definición: (variable, constante))
Procesar secuencialmente la lista de expresiones y asignaciones.
Para expresióny asignación:
Sustituir las apariciones de las variables que se encuentran en el conjunto de definiciones por sus constantes asociadas.
Para asignación:
Eliminar del conjunto de definiciones, la definición de la variable asignada.
Añadir la definición de la variable asignada si se le asigna una constante.
Ejemplo de Separación en Bloques Básicos



Ejemplo:
Código Resultado...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • optimizacion
  • optimizacion
  • Optimizacion
  • Optimizacion
  • Optimizacion
  • Optimizacion
  • Optimizacion
  • Optimizacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS