Академический Документы
Профессиональный Документы
Культура Документы
Bloque bsico
Un bloque bsico es un fragmento de cdigo que
tiene una nica entrada y salida, y cuyas
instrucciones se ejecutan secuencialmente.
La idea del bloque bsico es encontrar partes del
programa
cuyo
anlisis
necesario
para
la
Ejemplo
Folding
El ensamblamiento es reemplazar las
expresiones por su resultado cuando se
pueden evaluar en tiempo de compilacin
(resultado constante).
Ejemplo: Se aade el procesamiento de las constantes a las
reglas de anlisis de expresiones.
Ejemplo de Folding
B*5+8-(3+2)+9
TERMINOS
B*5
+8
-3
-2
+9
TERMINOS CONSTANTES:
+8-3-2+9=12
RESULTADO:
(B*5)+12
((a-(3*((2+5)-3)))+(b/(63))).
Propagacin de constantes
Desde que se asigna a una variable un valor constante hasta la
siguiente asignacin, se considera a la variable equivalente a la
constante.
Ejemplo: Propagacin Ensamblamiento
PI=3.14
G2R=PI/180 -> G2R=3.14/180 -> G2R=0.017
PI y G2R se consideran constantes hasta la prxima asignacin.
Estas optimizaciones permiten que el programador utilice
variables como constantes sin introducir ineficiencias. Por
ejemplo en C no hay constantes y ser lo mismo utilizar
Int a=10;
#define a 10
Con la ventaja que la variable puede ser local.
Actualmente en C se puede definir const int a=10;
3.1.2 Ciclos
Los programas pasan la mayor parte del tiempo en
ciclos, mientras menos instrucciones tengan, ms
rpido ejecutan cualquier expresin cuyo valor es
independiente de la cantidad de veces que se
ejecute el ciclo es una invariante del ciclo.
3.1.3 Globales
La optimizacin global se da con respecto a todo el cdigo.
Este tipo de optimizacin es ms lenta pero mejora el
desempeo general de todo programa. Las optimizaciones
globales pueden depender de la arquitectura de la mquina.
La optimizacin global a partir del anlisis del grafo del flujo
de ejecucin permite.
Problema: la optimizacin global es muy costosa en tiempo
de compilacin.
En algunos casos es mejor mantener variables globales para
agilizar los procesos (el proceso de declarar variables y
eliminarlas toma su tiempo) pero consume ms memoria.
Algunas optimizaciones incluyen utilizar como variables
registros del CPU, utilizar instrucciones en ensamblador
3.1.4 De Mirilla
La optimizacin de mirilla trata de
estructurar de manera eficiente el flujo del
programa, sobre todo en instrucciones de
bifurcacin como son las decisiones, ciclos
y saltos de rutinas.
La idea es tener los saltos lo ms cerca de
las llamadas, siendo el salto lo ms
pequeo posible.