wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Optimización en Compiladores

Total questions: 30

Worksheet time: 18mins

Name
Class
Date
1.

¿Cuál es el objetivo principal de la optimización en compiladores?

a)

Reducir la cantidad de comentarios en el código

b)

Mejorar la legibilidad del programa

c)

Aumentar la eficiencia en tiempo y espacio

d)

Añadir nuevas funcionalidades

2.

¿En qué fase del compilador ocurre la optimización del código?

a)

En la etapa léxica

b)

En la generación de código intermedio

c)

Después del análisis sintáctico

d)

Antes del enlace final

3.

¿Qué tipo de optimización se realiza dentro de un bloque de código limitado, sin afectar otras partes del programa?

a)

Global

b)

Local

c)

De ciclo

d)

De mirilla

4.

La optimización global se caracteriza por:

a)

Afectar solo una línea de código

b)

Considerar funciones independientes

c)

Analizar múltiples bloques de código en conjunto

d)

Solo eliminar comentarios

5.

¿Cuál de los siguientes ejemplos corresponde a una optimización de mirilla?

a)

Sustituir x * 1 por x

b)

Eliminar variables globales

c)

Dividir un bucle en varias funciones

d)

Reducir la cantidad de llamadas a memoria

6.

La optimización de ciclos busca principalmente:

a)

Hacer que los ciclos sean más fáciles de leer

b)

Reducir el número de iteraciones y accesos a memoria

c)

Cambiar la estructura de control del programa

d)

Eliminar los comentarios del bucle

7.

¿Cuál de los siguientes no es un tipo de optimización?

a)

Local

b)

Global

c)

De mirilla

d)

Lógica booleana

8.

¿Qué hace la optimización de código redundante?

a)

Duplica expresiones para ahorrar tiempo

b)

Elimina operaciones innecesarias o repetidas

c)

Aumenta el tamaño del código

d)

Mejora la legibilidad del código

9.

¿Qué tipo de optimización se aplica en el siguiente caso? x = 5 y = x + 0

a)

De ciclo

b)

De mirilla

c)

Global

d)

Local

10.

¿Cuál de los siguientes criterios no se utiliza para mejorar el código?

a)

Evitar operaciones redundantes

b)

Repetir cálculos por claridad

c)

Simplificar expresiones

d)

Reutilizar resultados

11.

¿Qué significa “costo de ejecución” en el contexto de optimización?

a)

El precio del compilador

b)

El tiempo y recursos usados por un programa

c)

La cantidad de comentarios en el código

d)

El número de líneas de código

12.

El costo en memoria está relacionado con:

a)

El número de registros usados

b)

La cantidad de espacio ocupado por variables y estructuras

c)

Las llamadas al sistema operativo

d)

El tamaño de los comentarios

13.

El costo en registros depende de:

a)

La cantidad de variables almacenadas en memoria RAM

b)

La reutilización eficiente de registros del CPU

c)

El número de archivos abiertos

d)

El tiempo de ejecución total

14.

¿Qué recurso crece rápidamente en programas recursivos?

a)

Los registros

b)

La pila

c)

La memoria secundaria

d)

Las constantes

15.

¿Qué herramienta ayuda a detectar expresiones redundantes y dependencias?

a)

Editor de texto

b)

Analizador de flujo de datos

c)

Depurador

d)

Intérprete

16.

Un grafo de flujo de control (CFG) se utiliza para:

4 lines
17.

¿Qué análisis identifica qué variables aún pueden ser usadas más adelante?

a)

Available Expressions

b)

Reaching Definitions

c)

Live Variables

d)

Constant Folding

18.

¿Qué optimización se aplica en el siguiente ejemplo? x = 2 * 3 y = x + 5

a)

Propagación de constantes

b)

Eliminación de bucles

c)

Optimización global

d)

Reescritura sintáctica

19.

En optimización de mirilla, el compilador analiza:

a)

Todo el programa completo

b)

Un pequeño grupo de instrucciones consecutivas

c)

Solo funciones recursivas

d)

Instrucciones dentro de ciclos

20.

La optimización que busca reducir el tiempo total de ejecución en varias funciones se llama:

a)

Global

b)

Local

c)

De mirilla

d)

Parcial

21.

¿Cuál es una técnica de optimización local común?

a)

Eliminación de variables globales

b)

Eliminación de código muerto

c)

Expansión de funciones

d)

Reutilización de registros entre módulos

22.

La propagación de copias consiste en:

a)

Duplicar variables

b)

Sustituir variables por su valor cuando sea posible

c)

Crear nuevas copias del código

d)

Dividir el programa en módulos

23.

¿Qué tipo de optimización elimina variables o expresiones que no afectan la salida del programa?

a)

Local

b)

Eliminación de código muerto

c)

De ciclo

d)

De mirilla

24.

¿Qué análisis de flujo de datos identifica definiciones alcanzables?

a)

Reaching Definitions

b)

Live Variables

c)

Data Folding

d)

Loop Unrolling

25.

¿Cuál de los siguientes ejemplos muestra una simplificación algebraica?

a)

x = y + 0 → x = y

b)

x = y * 2 → x = y * y

c)

x = 0 + 1 → x = 1 + 0

d)

x = x / 1 → x = x / 2

26.

¿Qué herramienta permite visualizar flujos de datos de manera gráfica?

a)

Graphviz

b)

GCC

c)

Git

d)

Sublime Text

27.

¿Qué tipo de optimización mejora el rendimiento dentro de bucles grandes?

a)

De ciclo

b)

De mirilla

c)

Local

d)

Global

28.

¿Qué se busca al reordenar instrucciones sin alterar el resultado final?

a)

Mejorar la estética del código

b)

Reducir el tiempo de ejecución

c)

Crear nuevos errores semánticos

d)

Eliminar constantes

29.

¿Qué ventaja tiene aplicar optimización de código?

a)

Incrementa la complejidad del compilador

b)

Disminuye el rendimiento del programa

c)

Mejora la velocidad y uso eficiente de recursos

d)

Dificulta el mantenimiento del código

30.

¿Por qué no se optimiza todo el código al máximo nivel?

a)

Porque no todos los compiladores pueden hacerlo

b)

Porque algunas optimizaciones pueden alterar el comportamiento o dificultar el mantenimiento

c)

Porque requiere más comentarios

d)

Porque el código se vuelve más corto