NOMBRE: Andrés Dávila M.
FECHA: 08/07/2020
MATERIA: Compiladores
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?
-Si un compilador traduce el idioma de origen a su ordenador de destino sin tener la opción
de generar código intermedio, intermedio, a continuación, continuación, en cada nueva
máquina, máquina, una nativa del compilador completo es necesario.
-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.
-La segunda parte del compilador, síntesis, síntesis, se modifica de acuerdo a la máquina de
destino.
-Es más fácil de aplicar las 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.
origen. Pueden ser fácilmente generados desde el código fuente y podemos aplicar
fácilmente modificaciones de código para mejorar el rendimiento. rendimiento. Pero para
optimización de la máquina destino, es menos preferido.
• ¿A qué se refiere la representación intermedia de Nivel Bajo?
Este es cerca de la máquina de destino, destino, lo que lo hace adecuado para registro y
asignación de memoria, memoria, un conjunto de instrucciones selección, selección, etc. 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 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?
Generador de código intermedio recibe la entrada de su predecesor, analizador semántico,
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.
Por ejemplo: a = b + c * d;
El generador de código intermedio, intermedio, tratar de dividir esta expresión en sub-
expresiones y, a continuación, generar el código correspondiente.
r1 = c * d; r2 = b + r1; r3 = r2 + r1; a = r3
R que se utilizan como registros en el programa de destino.
Un código de dirección tiene un máximo de tres direcciones para calcular la expresión.
expresión. Un código de dirección puede estar representado en dos formas: cuádruples y
triples.
• ¿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. El ejemplo anterior se representa a continuación cuadruplica en
formato:
• ¿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 arg2. Los
resultados resultados de las respectivas sub-expresiones son indicados por la posición de
expresión. Similitud con Triples representan DAG y árbol de sintaxis. sintaxis. Son
equivalentes a DAG al tiempo que representan las expresiones.
Triples ante el problema de optimiza optimización código un inmovilismo mientras que, en
la medida en que los resultados son posicionales y cambiar el orden o la posición posición
de una expresión puede causar problemas.
• Qué aspectos juegan las declaraciones en el proceso de la generación de código
intermedio.
Declaración implica asignación de espacio en la memoria y la entrada de tipo y nombre de
la tabla de símbolos. 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.
La generación de lenguaje intermedio permite crear facilmente un compilador para diferentes
máquinas y La representación intermedia puede ser optimizada por un optimizador independiente
del código final.

Generacion codigo intermedio

  • 1.
    NOMBRE: Andrés DávilaM. FECHA: 08/07/2020 MATERIA: Compiladores 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? -Si un compilador traduce el idioma de origen a su ordenador de destino sin tener la opción de generar código intermedio, intermedio, a continuación, continuación, en cada nueva máquina, máquina, una nativa del compilador completo es necesario. -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. -La segunda parte del compilador, síntesis, síntesis, se modifica de acuerdo a la máquina de destino. -Es más fácil de aplicar las 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. origen. Pueden ser fácilmente generados desde el código fuente y podemos aplicar fácilmente modificaciones de código para mejorar el rendimiento. rendimiento. Pero para optimización de la máquina destino, es menos preferido. • ¿A qué se refiere la representación intermedia de Nivel Bajo? Este es cerca de la máquina de destino, destino, lo que lo hace adecuado para registro y asignación de memoria, memoria, un conjunto de instrucciones selección, selección, etc. 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 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? Generador de código intermedio recibe la entrada de su predecesor, analizador semántico, 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. Por ejemplo: a = b + c * d; El generador de código intermedio, intermedio, tratar de dividir esta expresión en sub- expresiones y, a continuación, generar el código correspondiente. r1 = c * d; r2 = b + r1; r3 = r2 + r1; a = r3 R que se utilizan como registros en el programa de destino.
  • 2.
    Un código dedirección tiene un máximo de tres direcciones para calcular la expresión. expresión. Un código de dirección puede estar representado en dos formas: cuádruples y triples. • ¿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. El ejemplo anterior se representa a continuación cuadruplica en formato: • ¿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 arg2. Los resultados resultados de las respectivas sub-expresiones son indicados por la posición de expresión. Similitud con Triples representan DAG y árbol de sintaxis. sintaxis. Son equivalentes a DAG al tiempo que representan las expresiones. Triples ante el problema de optimiza optimización código un inmovilismo mientras que, en la medida en que los resultados son posicionales y cambiar el orden o la posición posición de una expresión puede causar problemas. • Qué aspectos juegan las declaraciones en el proceso de la generación de código intermedio. Declaración implica asignación de espacio en la memoria y la entrada de tipo y nombre de la tabla de símbolos. 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.
  • 3.
    • Presente unejemplo del lenguaje C con respecto a las declaraciones de variables. La generación de lenguaje intermedio permite crear facilmente un compilador para diferentes máquinas y La representación intermedia puede ser optimizada por un optimizador independiente del código final.