Informatica

Páginas: 6 (1321 palabras) Publicado: 14 de octubre de 2012
CUESTIONARIO COMPILADORES UNIDAD I

1. ¿Cuándo se realiza la generación del código?
* Se realiza mientras se analiza el programa “Libre del contexto”

2. ¿Cuándo se realiza la optimización?

* Se realiza después de la generación de código de todo el programa o de un elemento ejecutable del programa (función, procedimiento, etc.).
* “Dependiente del contexto”3. ¿Cuál es el objetivo de la optimización?
-Obtener código que se ejecuta más eficientemente según los criterios
Tiempo de ejecución (optimización temporal)
Espacio de memoria utilizado (optimización espacial)

4. ¿Cuál es el funcionamiento de la optimización?
Revisa el código generado a varios niveles de abstracción y realiza las optimizaciones aplicables al nivel de abstracciónRepresentaciones de código intermedio de más a menos abstractas
Árbol sintáctico abstracto
a. Optimizar subexpresiones redundantes, reducción de frecuencia, etc.
Tuplas o cuádruplas
b. Optimizar en uso de los registros o de las variables temporales
Ensamblador/Código máquina
c. Convertir saltos a saltos cortos
d. Reordenar instrucciones5. ¿Qué condiciones debe de cumplir la optimización y menciona un ejemplo?
El código optimizado se ha de comportar igual que el código de partida excepto por ser más rápido o ocupar menos espacio.
Hay que buscar transformaciones que no modifiquen el comportamiento del código según el comportamiento definido para el lenguaje de programación.

Ejemplo
Si no se ha definido el orden deevaluación de los operándoos la siguiente optimización es válida
B=2*A+(A=c*d);
Pasar a
A=c*d;
B=A*3;

6. ¿Qué acción realiza la Optimización independiente de máquina?
-Reducción de frecuencia

7. ¿Qué acción realiza la Optimización dependiente de máquina?
a. Asignación de registros
b. Reordenación de las instrucciones

8. ¿Qué acción realiza la Optimización local?c. Reducción de potencia
d. Folding
e. Propagación de constantes

9. ¿Qué acción realiza la Optimización global?
f. análisis del grafo del flujo de ejecución

10. ¿Qué acción realiza la Optimización de bucles?
g. Loor un trolling
h. Reducción de frecuencia
i. Reducción de potencia

11. ¿Qué acción realiza la Optimizaciones locales?j. Folding
k. Propagación de constantes
l. Reducción de potencia
m. Reducción de subexpresiones comunes

12. ¿Qué es el bloque básico?
Un bloque básico es un fragmento de código que tiene una única entrada y salida, y cuyas instrucciones se ejecutan secuencialmente

13. ¿Cuál es la función del bloque básico?
Encontrar partes del programa cuyo análisisnecesario para la optimización sea lo más simple posible
14. ¿Qué es el ensamblamiento (folding)?
El ensamblamiento es remplazar las expresiones por su resultado cuando se pueden evaluar en tiempo de compilación (resultado constante).
Ejemplo: A=2+3+A+C -> A=5+A+C

15. ¿Cuándo se puede aplicar la expansión de bucles (loop unrolling)?
* La expansión de bucles solo se puede aplicar alos bucles cuyo número de iteraciones se conoce en tiempo de compilación.
* Ejemplo:
* Se puede aplicar a los bucles
for i=1 to 10 do …
* No se puede aplicar a los bucles
for i=a to b do …

16. ¿Qué hace la reducción de frecuencia?
Derecta las operaciones invariantes de bucle y las calcula una única vez delante del bucle. Ejemplo:
for i=1 to n do c=i*sin(a);
sin(a)es una operación invariante del bucle que puede pasar de calcularse n veces a una con la siguiente transformación
tmp=sin(a);
for i=1 to n do c=i*tmp;

17. Menciona la implantación de frecuencia:
n. Detectar todas las variables que se modifican en el bucle.
o. Marcar todas las operaciones no invariantes
p. Aplicar la siguiente regla recursiva para detectar las...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Informatica
  • Informatica
  • Informatica
  • Informatica
  • Informatica
  • Informática
  • Informatica
  • Informatica

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS