1. ESCUELA DE INGENIERÍA SEMESTRE ABRIL – AGOSTO 2021
COMPILADORES
Fecha: 01-07-2021
NOMBRE: Bryan Chasiguano
ACTIVIDAD EN CLASES N° 20
Realizar las siguientes actividades:
Contestar las siguientes preguntas relacionadas a la optimización de memoria.
¿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?
Hay que aplicar optimización al código para que un código sea efectivo debido a que el
código puede funcionar sin haberlo optimizado.
¿Por qué es importante la optimización de código?
Porque trata de mejorar el código para que el sistema consuma menos recursos, es
decir, CPU, memoria y gracias a esto ofrece una alta velocidad
¿Qué se garantiza cuando se aplica la optimización de alto nivel?
En la optimización de alto nivel se garantiza que la velocidad de programa aumente y
si es posible, el programa exija menos cantidad de recursos.
¿A nivel de proceso en qué aspectos puede ser utilizado un código optimizado?
•Los usuarios pueden cambiar o reorganizar el código o utilizar los mejoresalgoritmos
para escribir código.
•Después de generar el código intermedio, el compilador puede modificar elcódigo
por dirección de cálculos y mejorar los lazos
•Al tiempo que se produce el código en la máquina destino, el compilador puedehacer
uso de la jerarquía de memoria y registros de la CPU
¿Qué implica la optimización independiente de la máquina?
En esta optimización, el compilador toma una parte del código intermedio y modifica
esa parte del código para que no estén implicados los registros de la CPU y
ubicaciones de memoria absoluta.
¿Qué implica la optimización dependiente de la máquina?
2. 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. Los registros de la CPU
tratan y pueden tener referencias de memoria absoluta en lugar de referencias
relativas
¿Dentro del análisis de bloques básicos, que aspectos se consideran internamente?
Se toman en cuenta todas las declaraciones del cabezal de búsqueda de todos los
bloques básicos desde donde se inicia un bloque básico
•Las declaraciones que son objeto de cualquier rama
•Las declaraciones que siguen a cualquier rama
•Las declaraciones del cabezal y las declaraciones siguientes forman un bloque básico
•Un bloque básico no incluye cualquier cabezal de declaración de cualquier otro
bloque básico
¿A qué se refiere el flujo de control gráfico?
Se refiere al control del programa que pasa entre los bloques. Es una herramienta útil
que ayuda en la optimización de ayudar a localizar cualquier bucle no deseado en el
programa.
¿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 solo una vez, en lugar de encada 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, tiempo y memoria. Estas
expresiones deben reemplazarse con las expresiones más moldea blessin
comprometer el resultado de la expresión.
3. ¿A qué se refiere la denominación de código parcialmente muerto, como lo interpreta
la optimización de código?
Código parcialmente muerto se refiere a códigos nunca ejecutados o inalcanzables si
se ejecuta, su producción nunca se utiliza por lo tanto, el código muerto no juega
ningún papel dentro del programa, es decir, puede eliminarse simplemente.
¿Qué significa una redundancia parcial?
Significa que las expresiones redundantes se calculan más de una vez en ruta paralela,
sin ningún cambio de operadores, mientras que parcial e las expresiones redundantes
se calculan más de una vez en el camino, sin ningún cambio de operadores.
Realice un collage con las palabras más importantes sobre el tema optimizaciónde
código. (similar al ejemplo propuesto)Realizar un comentario personal sobre el
funcionamiento que tiene laoptimización de código en el proceso de la de la
compilación
4. Realizar un comentario personal sobre el funcionamiento que tiene la optimización
de código en el proceso de la de la compilación.
Es importante comprender la generación y optimización de código para comprender y
poder mejorar el rendimiento de los diferentes tipos de código que puede existir