Documente Academic
Documente Profesional
Documente Cultură
Página:
INFORME TÉCNICO
Página 1 de 8
TITULO
Esquemas de generación de código intermedio
LENGUAJES Y AUTOMATAS I I
ELABORADO POR
Javier Alonso Uicab Tun 4955
Francisco Argenis Tun Chan 4935
Francisco Ivan Keb Chi 5002
Página:
INFORME TÉCNICO
Página 2 de 8
Índice
Introducción ........................................................................................................................................ 3
Justificación ......................................................................................................................................... 4
Metodología ........................................................................................................................................ 4
Resultados ........................................................................................................................................... 5
Conclusión ........................................................................................................................................... 7
Recomendaciones ............................................................................................................................... 7
Anexos ................................................................................................................................................. 7
Referencias .......................................................................................................................................... 8
Código:
DIRECCIÓN ACADÉMICA CT-FO-02-05
Revisión: 1
Página:
INFORME TÉCNICO
Página 3 de 8
Introducción
Se comenzará definiendo que es el código intermedio, en principio, el código intermedio es
independiente del lenguaje de programación fuente. El código intermedio facilita la escritura de
compiladores para distintas maquinas. La traducción del lenguaje a código intermedio será idéntica
en todas y lo único que cambiará será el traductor de código intermedio a código de máquina. Esta
idea de un código intermedio independiente de la maquina puede llevarse un paso más allá, como
se hace en diversos lenguajes, de los cuales Java es quizá el más representativo. La idea es compilar
el lenguaje a un código intermedio. Al ejecutar el programa, se interpreta este código intermedio o
se compila en ese momento para la máquina destino. De esta manera, un mismo binario puede
ejecutarse en máquinas con arquitecturas y sistemas operativos totalmente distintos.
El objetivo de este código intermedio es que es generado para una máquina virtual y a su vez esta
tiene los siguientes dos objetivos.
Ser lo suficientemente simples como para poder generar código para ellas de manera
sencilla, pero con la suficiente riqueza para poder expresar las construcciones del lenguaje
fuente.
Estar lo suficientemente próximas a los procesadores reales para que el paso del código
intermedio al código de máquina sea prácticamente directo.
Código:
DIRECCIÓN ACADÉMICA CT-FO-02-05
Revisión: 1
Página:
INFORME TÉCNICO
Página 4 de 8
Justificación
Cuando un compilador traduce del idioma origen a una máquina destino sin la opción de código
intermedio, esto significaría que en cada nueva máquina es necesario que tenga un compilador
nativo completo. Es necesaria la existencia del código intermedio, ya que este elimina la necesidad
de un nuevo compilador completo por cada máquina de la sección de análisis, además de que más
sencillo realizar cambios en el código fuente para incrementar el rendimiento del código por
medio de la optimización del código intermedio.
Metodología
Método de análisis-síntesis
Página:
INFORME TÉCNICO
Página 5 de 8
Resultados
A continuación se presenta una tabla de definición orientada a la sintaxis, la cuál cumple con la
función de traducir expresiones que contienen dígitos separados por los signos positivos o
negativos a notación postfija.
expr.t = 2213-25+
expr.t = 22 - term.t = 13 25
term.t = 22 13
22
22 – 13 + 25
Código:
DIRECCIÓN ACADÉMICA CT-FO-02-05
Revisión: 1
Página:
INFORME TÉCNICO
Página 6 de 8
2. - Bloque
expr.t = 22-13+25
22 Imprimir (‘22’)
2213 – 25 +
3.- Bloque
expr.t = 84 + 10
84 Imprimir (‘84’)
8410 +
Código:
DIRECCIÓN ACADÉMICA CT-FO-02-05
Revisión: 1
Página:
INFORME TÉCNICO
Página 7 de 8
Conclusión
La traducción dirigida u orientada por sintaxis es llevada a cabo mediante la realización de la unión
de reglas o fragmentos de un programa a las producciones de una gramática, aunado a esto se
incluye dos importantes conceptos que están estrechamente relacionados a la traducción dirigida
por sintaxis, los atributos y los esquemas de traducción, los primeros pueden ser cualquier cantidad
asociada a la construcción del programa y que pueden ser de naturaleza sintetizado o heredado,
mientras que los esquemas hacen referencia a una notación para unir los fragmentos de un
programa a las producciones de una gramática.
Recomendaciones
Se recomienda no hacer caso omiso de la generación de código intermedio, ya que este elimina la
necesidad de un compilador nativo completo para cada máquina en la que se quiera hacer uso de
este.
Anexos
Código:
DIRECCIÓN ACADÉMICA CT-FO-02-05
Revisión: 1
Página:
INFORME TÉCNICO
Página 8 de 8
Referencias
Creswell, J. (2003). Research Design: Qualitative, Quantitative, and Mixed Methods Approaches.
Thousand Oaks, California, Sage Publications.
Uli Kremer. «Diseño del compilador CISC 471». Consultado el 20 de octubre de 2017.