1. ESCUELA DE INGENIERÍA
SEMESTRE ABRIL – AGOSTO 2021
COMPILADORES
Fecha: 29-06-2021
NOMBRE: Bryan Chasiguano
ACTIVIDAD EN CLASES N° 19
Realizar las siguientes actividades:
Contestar las siguientes preguntas relacionadas a la generación de código intermedio.
¿Por qué se debe traducir un código fuente a un código intermedio que luego se
traduce a su código destino?
Debido a que es más fácil aplicar modificaciones al código fuente que mejoraran el
rendimiento y eliminan necesidades de aumentar código extra que lo volvería
ineficiente
¿A qué se refiere la representación intermedia de Nivel Alto?
A que puede ser fácilmente generado desde el código fuente y se puede aplicar de manera fácil
modificaciones al código para mejor el rendimiento.
¿A qué se refiere la representación intermedia de Nivel Bajo?
Es una representación cerca de la máquina de destino adecuada para registros y asignaciones de
memoria y de igual manera es bueno para optimizaciones dependientes de la máquina.
¿El código intermedio puede ser específico para cada lenguaje o independiente del lenguaje?
Puede ser especificado para cada idioma o independientemente de la lengua.
¿Cómo se realiza el proceso Three-Address?
Mediante la generación de código intermedio recibiendo la entra del analizador semántico, en forma
de árbol de sintaxis anotado. El cual se puede convertir en una representación lineal.
¿A qué se refiere la expresión cuadruplica dentro del proceso del código intermedio?
Cada instrucción cuadruplica exposición se divide en cuatro campos: campos:operador, arg1, arg2, y
resultado
2. ¿A qué se refiere la expresión triples dentro del proceso del código intermedio?
Cada instrucción en triples presentación tiene tres campos: op, arg1, arg2. Los resultados de las
respectivas sub-expresiones son indicados por la posición de expresión. Similitud con Triples
representan DAG y árbol de sintaxis. Son equivalentes a DAG al tiempo que representan las
expresiones.
Qué aspectos juegan las declaraciones en el proceso de la generación de código intermedio.
El aspecto de asignación de espacio en la memoria y la entra de tipo y nombre de la tabla de símbolos.
Presente un ejemplo del lenguaje C con respecto a las declaraciones de variables.
Int a;
Float b;
Allocation process:
(offset =0)
Int a;
Id.type=int
Id.width=2
Offset = offset +id.width
{offset =2}
Float b;
Id.type = float
Id.width =4
Offset=offset+id.width
{offset=6}
Realizar un comentario personal sobre el funcionamiento que tiene la memoria
en tiempo de ejecución en el proceso de la de la compilación.
Es imporante comprender que la memoria juega un rol fundamental para el desarrollo
de cualquier tipo de actividad dentro del sistema y debe ser controlado con mucho
cuidado para poder incrementar la eficiencia del sistema