1. NOMBRE: Andrés Dávila M.
FECHA: 10/07/20
MATERIA: Compiladores
OPTIMIZACIÓN DE MEMORIA
1. ¿Se garantiza un código efectivo al aplicar una optimización de código o puede afirmar lo
contrario, explique con su criterio esta particularidad?
Si. Porque mejora el código para que consuma nuestro computador menos recursos.
2. ¿Por qué es importante la optimización de código?
Porque trata de mejorar el código por lo que consumen menos recursos (es decir CPU,
memoria) y ofrecer una alta velocidad.
3. ¿Qué se garantiza cuando se aplica la optimización de alto nivel?
-El código de salida no debe, de ninguna manera, cambiar el sentido del programa.
-Optimización debe aumentar la velocidad del programa y si es posible, el programa debe
exigir menos cantidad de recursos.
-Optimización debe ser rápido y no debe retrasar el proceso de compilación general.
4. ¿A nivel de proceso en qué aspectos puede ser utilizado un código optimizado?
Al principio, los usuarios pueden cambiar o reorganizar el código o utilizar los mejores
algoritmos para escribir el código.
Después de generar código intermedio, intermedio, el compilador puede modificar el
código intermedio por dirección los cálculos y mejorar los lazos.
Al tiempo que se produce la máquina de destino código, el compilado compilador puede
hacer uso de jerarquía de memoria y registros de la CPU.
5. ¿Qué implica la optimización independiente de la máquina?
Repetir la asignación de elemento identificador. No sólo debe guardar los ciclos de la CPU,
pero puede ser utilizada en cualquier procesador
6. ¿Qué implica la optimización dependiente de la máquina?
Se realiza después de que el código de destino se ha generado y cuando el código se
transforma de acuerdo a la arquitectura del equipo de destino. destino. Registros de la
CPU se trata y puede tener referencias de memoria absoluta en lugar de referencias
relativas. Optimizado Optimizadores dependientes de la máquina que los esfuerzos para
aprovechar al máximo de jerarquía de memoria.
7. ¿Dentro del análisis de bloques básicos, que aspectos se consideran internamente?
Declaraciones del cabezal Búsqueda de todos los bloques básicos desde donde se inicia un
bloque básico:
-Primera declaración de un programa.
-Las declaraciones que son objetivo de cualquier rama (condicional o incondicional).
-Las declaraciones que siguen cualquier rama.
-Las declaraciones del cabezal y las declaraciones siguientes forman un bloque básico.
Un bloque básico no incluye cualquier cabezal declaración de cualquier otro bloque.
8. ¿A qué se refiere el flujo de control gráfico?
2. El control del programa se pasa entre los bloques. bloques. Es una herramienta útil que
ayuda en la optimización por ayudar a localizar cualesquiera bucles no deseados en el
programa.
9. ¿Dentro de la optimización de bucle, qué aspectos son considerados importantes,
comente cada uno de ellos?
-Código invariante: un fragmento de código que reside en el bucle y calcula el mismo valor
en cada iteración se denomina bucle de código invariante. Este código puede ser
trasladado fuera del circuito de ahorro que se calculan sólo una vez, en lugar de en cada
iteración.
-Inducción análisis: una variable se denomina inducción variable si su valor es modificado
en el bucle de un bucle de valor invariable.
-Fuerza reducción: Hay expresiones que consumen más ciclos de CPU, el tiempo y la
memoria Estas expresiones deben reemplazarse con las expresiones más baratos sin
comprometer el resultado de expresión. Por ejemplo, la multiplicación (x * 2) es costosa
en términos de ciclos de CPU que (x << 1) y el mismo resultado.
10. ¿A qué se refiere la denominación de código parcialmente muerto, como lo interpreta la
optimización de código?
Hay algunas instrucciones de código cuyos valores calculados se utilizan sólo en
determinadas circunstancias, es decir, a veces se utilizan los valores y a veces no lo son.
Estos códigos son conocidos como parte de código.
11. ¿Qué significa una redundancia parcial?
Las expresiones redundantes se calculan más de una vez en ruta paralela, sin ningún
cambio de operandos. Mientras que parcial de las expresiones redundantes se calculan
más de una vez en el camino, sin ningún cambio de operandos.
12. Investigue sobre un proyecto de software que se haya planteado como optimización de
código, detalle sus características, componentes y alcances (resumen corto).
Es una calculadora, en la cual, existe un código sin optimizar, y el mismo código, pero ya
optimizado.
Características:
El tiempo de ejecución fue más rápido en el código optimizado, por lo que se pude
concluir que el código optimizado es más eficiente.
El primer código demuestra que no se encuentra optimizado a diferencia del segundo que
su tiempo de ejecución es menor.
3. La optimización de código es el conjunto de fases de un compilador que transforman un
fragmento de código en otro fragmento con un comportamiento equivalente y que se ejecuta
de forma más eficiente, es decir, usando menos recursos de cálculo como memoria o tiempo
de ejecución.