Font size
WorksheetsOptimización en Compiladores
Total questions: 30
Worksheet time: 18mins
¿Cuál es el objetivo principal de la optimización en compiladores?
Reducir la cantidad de comentarios en el código
Mejorar la legibilidad del programa
Aumentar la eficiencia en tiempo y espacio
Añadir nuevas funcionalidades
¿En qué fase del compilador ocurre la optimización del código?
En la etapa léxica
En la generación de código intermedio
Después del análisis sintáctico
Antes del enlace final
¿Qué tipo de optimización se realiza dentro de un bloque de código limitado, sin afectar otras partes del programa?
Global
Local
De ciclo
De mirilla
La optimización global se caracteriza por:
Afectar solo una línea de código
Considerar funciones independientes
Analizar múltiples bloques de código en conjunto
Solo eliminar comentarios
¿Cuál de los siguientes ejemplos corresponde a una optimización de mirilla?
Sustituir x * 1 por x
Eliminar variables globales
Dividir un bucle en varias funciones
Reducir la cantidad de llamadas a memoria
La optimización de ciclos busca principalmente:
Hacer que los ciclos sean más fáciles de leer
Reducir el número de iteraciones y accesos a memoria
Cambiar la estructura de control del programa
Eliminar los comentarios del bucle
¿Cuál de los siguientes no es un tipo de optimización?
Local
Global
De mirilla
Lógica booleana
¿Qué hace la optimización de código redundante?
Duplica expresiones para ahorrar tiempo
Elimina operaciones innecesarias o repetidas
Aumenta el tamaño del código
Mejora la legibilidad del código
¿Qué tipo de optimización se aplica en el siguiente caso? x = 5 y = x + 0
De ciclo
De mirilla
Global
Local
¿Cuál de los siguientes criterios no se utiliza para mejorar el código?
Evitar operaciones redundantes
Repetir cálculos por claridad
Simplificar expresiones
Reutilizar resultados
¿Qué significa “costo de ejecución” en el contexto de optimización?
El precio del compilador
El tiempo y recursos usados por un programa
La cantidad de comentarios en el código
El número de líneas de código
El costo en memoria está relacionado con:
El número de registros usados
La cantidad de espacio ocupado por variables y estructuras
Las llamadas al sistema operativo
El tamaño de los comentarios
El costo en registros depende de:
La cantidad de variables almacenadas en memoria RAM
La reutilización eficiente de registros del CPU
El número de archivos abiertos
El tiempo de ejecución total
¿Qué recurso crece rápidamente en programas recursivos?
Los registros
La pila
La memoria secundaria
Las constantes
¿Qué herramienta ayuda a detectar expresiones redundantes y dependencias?
Editor de texto
Analizador de flujo de datos
Depurador
Intérprete
Un grafo de flujo de control (CFG) se utiliza para:
¿Qué análisis identifica qué variables aún pueden ser usadas más adelante?
Available Expressions
Reaching Definitions
Live Variables
Constant Folding
¿Qué optimización se aplica en el siguiente ejemplo? x = 2 * 3 y = x + 5
Propagación de constantes
Eliminación de bucles
Optimización global
Reescritura sintáctica
En optimización de mirilla, el compilador analiza:
Todo el programa completo
Un pequeño grupo de instrucciones consecutivas
Solo funciones recursivas
Instrucciones dentro de ciclos
La optimización que busca reducir el tiempo total de ejecución en varias funciones se llama:
Global
Local
De mirilla
Parcial
¿Cuál es una técnica de optimización local común?
Eliminación de variables globales
Eliminación de código muerto
Expansión de funciones
Reutilización de registros entre módulos
La propagación de copias consiste en:
Duplicar variables
Sustituir variables por su valor cuando sea posible
Crear nuevas copias del código
Dividir el programa en módulos
¿Qué tipo de optimización elimina variables o expresiones que no afectan la salida del programa?
Local
Eliminación de código muerto
De ciclo
De mirilla
¿Qué análisis de flujo de datos identifica definiciones alcanzables?
Reaching Definitions
Live Variables
Data Folding
Loop Unrolling
¿Cuál de los siguientes ejemplos muestra una simplificación algebraica?
x = y + 0 → x = y
x = y * 2 → x = y * y
x = 0 + 1 → x = 1 + 0
x = x / 1 → x = x / 2
¿Qué herramienta permite visualizar flujos de datos de manera gráfica?
Graphviz
GCC
Git
Sublime Text
¿Qué tipo de optimización mejora el rendimiento dentro de bucles grandes?
De ciclo
De mirilla
Local
Global
¿Qué se busca al reordenar instrucciones sin alterar el resultado final?
Mejorar la estética del código
Reducir el tiempo de ejecución
Crear nuevos errores semánticos
Eliminar constantes
¿Qué ventaja tiene aplicar optimización de código?
Incrementa la complejidad del compilador
Disminuye el rendimiento del programa
Mejora la velocidad y uso eficiente de recursos
Dificulta el mantenimiento del código
¿Por qué no se optimiza todo el código al máximo nivel?
Porque no todos los compiladores pueden hacerlo
Porque algunas optimizaciones pueden alterar el comportamiento o dificultar el mantenimiento
Porque requiere más comentarios
Porque el código se vuelve más corto
