Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LENGUAJES Y AUTOMATAS II Unidad 3. Optim
LENGUAJES Y AUTOMATAS II Unidad 3. Optim
Unidad 3. Optimización
Unidad 3. Optimización
3.1.1 Locales
Reacondicionamiento de operadores
distributiva.
V:= W * X *( Y + Z )
V := ( Y + Z ) * W * X
1. MOV AX, W
2. MUL AX, X
3. MOV t1, AX
4. MOV AX, Y
5. ADD AX, Z
6. MUL AX, t1
7. MOV V, AX
1.
2.
3.
4.
5.
MOV AX, Y
ADD AX, Z
MUL AX, W
MUL AX, X
MOV V, AX
3.1.2 Ciclos
>
Principio: Mover expresiones invariantes desde el cuerpo hasta la cabeza del bucle
-> al sacarlas del bucle, pueden quedar dentro de otro bucle externo)
Ejemplos:
while (i
>
Los costos son el factor más importante a tomar en cuenta a la hora de optimizar ya que
ganancia en tiempo
Pero en cambio si esa optimización se hace por ejemplo en un ciclo, la mejora obtenida
puede ser N veces mayor por lo cual el costo se minimiza y es benéfico la mejora.
programa.
•
memoria.
Otro tipo de aplicaciones que deben optimizarse son las aplicaciones para
dispositivos móviles.
cómputo convencional razón por la cual, el mejor uso de memoria y otros recursos
En algunos casos es preferible tener la lógica del negocio más fuerte en otros
o P2P.
3.2.2 Criterios para mejorar el código
optimicen su código desde el inicio, el problema radica en que el costo podría ser
muy grande ya que tendría que codificar más y/o hacer su código mas legible.
Criterios de optimización
Muchos de estos criterios pueden modificarse con directivas del compilador desde
Este proceso lo realizan algunas herramientas del sistema como los ofuscadores
Existen algunas herramientas que permiten el análisis de los flujos de datos, entre
ellas tenemos:
Depurador
Es una aplicación que permite correr otros programas, permitiendo al usuario ejercer
cierto control sobre los mismos a medida que los estos se ejecutan, y examinar el estado
del sistema (variables, registros, banderas, etc.) en el momento en que se presente algún
es decir el depurador de GNU. Éste ofrece una cantidad muy extensa y especializada de
sobre
archivos ejecutables. Esto quiere decir que el mismo funciona de forma independiente al
Desamblador
al lenguaje ensamblador.
Diccionario de datos
son pertinentes para el sistema, con definiciones precisas y rigurosas que le permite al
usuario y al proyectista del sistema tener una misma comprensión de las entradas, de
las salidas, de los componentes de los repositorios, y también de cálculos intermedios.
Bibliografía
Compiladores: Principios, técnicas y herramientas. Segunda Edición Aho, Lam, Sethi, Ullman
Alicante