You are on page 1of 2

Nombre del Documento: No. Pág.

1/ 1
Evaluación del Aprendizaje

Carrera: Ingeniería en Sistemas Computacionales Fecha de Aplicación: 11/06/2016


Evaluación: Primera Oportunidad
Asignatura: Lenguajes y Autómatas II. Grupo: 6 º B Período: Febrero 2016- Julio 2016
Docente: Ing. Hugo Lucas Alvarado Unidad(es): 3. Optimización
Nombre del Alumno(a):
Calificación:
N° de control: Reactivos: 20 Aciertos:

El objetivo de esta evaluación es medir el alcance de la competencia marcada en la Unidad 3, en su aspecto práctico;
que es:
 Conocer e Identificar los diferentes tipos de optimización que permita eficientar el código
intermedio.

Indicaciones. Realice lo que se indique

A. La representación en GDA de un bloque básico nos permite realizar varias


transformaciones para mejora de código, en el código representado por un bloque.
Menciona dos de esas transformaciones. (Valor: 2 puntos)

a)

b)

B. Escribe F si es falso o V si es verdadero.


a) Decimos que una variable está muerta en un punto en el programa, si su valor puede utilizarse más
adelante. ( )
b) Desde una perspectiva de Ingeniería de Software es preferible que los programadores solo accedan
a los elementos de datos mediante sus nombres de alto nivel. ( )
c) Al hacer que un compilador elimine redundancias, obtenemos programas tanto eficientes como
fáciles de comprender, esto representa las ventajas de los lenguajes de alto y bajo nivel
respectivamente. ( )
d) La eliminación de subexpresiones comunes, la propagación de copia, la eliminación de código
muerto y el cálculo previo de constantes son ejemplos comunes de transformaciones que preservan
la semántica. ( )

F-SACA-008 Versión 01
C. Completa las siguientes oraciones. (Valor: 4 puntos)
1. Se puede obtener una mejora considerable sobre el tiempo de ejecución del código, con solo
realizar una _____________________ dentro de cada bloque básico por sí mismo.
2. A la eliminación de instrucciones innecesarias en el código objeto, o la sustitución de una
secuencia de instrucciones por una secuencia más rápida de instrucciones que haga lo mismo se
le conoce como _________________________.
3. La mayoría de las _____________________ se basan en análisis de flujo de datos, que son
algoritmos para recopilar información acerca de un programa.
4. La optimización de un compilador debe conservar la _____________ del programa original.

D. Define los siguientes términos. (Valor: 4 puntos)


1. Optimización de código local

2. Optimización de código global

3. Subexpresión común

4. Código muerto

E. Construye el GDA para los bloques básicos que se muestran a continuación. (Valor: 6
puntos)
a) a=b+c
b=a-d
c=b+c
d=a-d

b) d=b*c
e=a+b
b=b*c
a=e-d

c) a=b+c
b=b-d
c=c+d
e=b+c

Bibliografia.
Lemone Karen A. , Fundamentos de compiladores Cómo traducir al lenguaje de computadora, Ed. Compañía Editorial Continental.

You might also like