El documento habla sobre el proceso de compilación y el uso de código intermedio. Explica que el código intermedio elimina la necesidad de generar un nuevo compilador completo para cada máquina, ya que la parte de análisis es la misma para todos los compiladores. También es más fácil optimizar el código aplicando técnicas al código intermedio que al código fuente original. El código intermedio puede ser específico a cada lenguaje o independiente del lenguaje, y representa el código de manera lineal, como notación postfix.
Compiladores - Código intermedio y su proceso de generación
1. ESCUELA DE INGENIERÍA
SEMESTRE MAYO – AGOSTO 2020
COMPILADORES
ACTIVIDAD EN CLASES N° 19
NOMBRE: MAURICIO PINTO FECHA: 08-07-2020
¿Por qué se debe traducir un código fuente a un códigointermedio que luegose
traduce a su código destino?
1. Si un compilador traduce el idioma de origen a su ordenador de destino sin tener la
opción de generar código intermedio, a continuación, en cada nueva máquina, una nativa
del compilador completo es necesario.
2. Código Intermedio elimina la necesidad de un nuevo compilador completo para cada
máquina de la sección de análisis mismo de todos los compiladores.
3. La segunda parte del compilador, síntesis, se modifica de acuerdo a la máquina de
destino.
4. Es más fácilde aplicarlas modificaciones del código fuente para mejorar rendimiento del
código mediante la aplicación de técnicas de optimización código el código intermedio.
¿A qué se refiere la representación intermedia de Nivel Alto?
Alto nivel de representación de código intermedio está muy cerca de la lengua de origen.
Pueden ser fácilmente generados desde el código fuente y podemos aplicar fácilmente
modificaciones de código para mejorar el rendimiento. Pero para optimización de la
máquina destino, es menos preferido.
¿A qué se refiere la representación intermedia de NivelBajo?
Este es cerca de la máquina de destino, lo que lo hace adecuado para registro y asignación
de memoria, un conjunto de instrucciones selección, etc. Es bueno para optimizaciones
dependientes de la máquina.
¿El código intermediopuede ser específico para cada lenguaje o independiente del
lenguaje?
El código intermedio puede ser específica para cada idioma (p. ej., código de bytes de
Java) o independiente de la lengua (tres-código de dirección).
¿Cómo se realiza el proceso Three-Address?
2. Generador de código intermedio recibe la entrada de su predecesor, analizador semántico,
en la forma de un árbol de sintaxis anotado. Árbol de sintaxis que luego se puede convertir
en una representación lineal, por ejemplo, ejemplo, postfix notación. Código intermedio
tiende a ser código independiente de la máquina. Por lo tanto, generador de código supone
que tiene número ilimitado de almacenamiento en memoria (registro) para generar el
código.
¿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
¿A qué se refiere la expresión triples dentro del proceso del códigointermedio?
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.
Una variable o procedimiento tiene que ser declarado antes de que se pueda utilizar.
Declaración implica asignación de espacio en la memoria y la entrada de tipo y nombre de
la tabla de símbolos. Un programa puede ser codificada y diseñado siguiendo la estructura
de la máquina destino en mente, pero es posible que no siempre se pueda convertir con
precisión un código fuente para su idioma de destino.
Presente un ejemplo del lenguaje C con respecto a las declaraciones de variables.
3. Realizar un comentario personal sobre el funcionamientoque tiene la memoria en
tiempo de ejecución en el proceso de la de la compilación.
En cuanto al funcionamiento del código intermedio dentro de la compilación podemos
decir que se considera como programar una maquina abstracta, donde debemos tener
siempre en cuenta que tiene dos propiedades importantes que son: ser fácil de producir y
también fácil de traducir el programa objeto.