Unidad vi.- generacion de codigo intermedio

Solo disponible en BuenasTareas
  • Páginas : 7 (1624 palabras )
  • Descarga(s) : 0
  • Publicado : 14 de junio de 2011
Leer documento completo
Vista previa del texto
UNIDAD VI.- GENERACION DE CODIGO INTERMEDIO
INDICE

6.1 Lenguajes intermedios.
6.2 Notaciones.
6.2.1 Infija.
6.2.2 Postfija.
6.2.3 Prefija.
6.3 Representación de código intermedio.
6.3.1 Notación Polaca.
6.3.2 Codigo P.
6.3.3 Triplos.
6.3.4 Cuádruplos.
6.4 Esquemas de generación.
6.4.1 Expresiones.
6.4.2 Declaración de variables, constantes
6.4.3 Estatuto de asignación.
6.4.4Estatuto condicional.
6.4.5 Estatuto de ciclos
6.4.6 Arreglos.
6.4.7 Funciones.
Generador de código intermedio
• La administración de la memoria se da en esta etapa.
• Se debe considerar tanto la memoria estática como dinámica, y en esta se utilizan generalmente pilas.
• Los lenguajes intermedios generalmente tienen árboles de derivación más pequeños que su contraparte original.
• Se puederepresentar un árbol sintáctico con un Grafo Dirigdo Acíclico (GDA).
• La notación postfija es una manera linealizada de representar un árbol sintáctico.
• a := b*-c+b*-c
• abc -*bc -*+=
• x := y op z
• x+y*z
• t1:=y*z
• t2:=x+t1
• Los lenguajes intermedios nos sirven para representar la producción final de nuestro lenguaje fuente.
• Existen muchos lenguajes intermedios, la mayoría de ellosson una representación más simplificada del código original para facilitar la traducción hacia el código final.
• Otros lenguajes intermedios sirven de base o como representación parcial de otros procesos.
• Por ejemplo al compilar un programa en C en Windows o DOS, se produce un código objeto con extensión .obj para que posteriormente el enlazador cree finalmente el código executable .exe
•En sistemas basados en Unix, también ocurre algo similar generándose un archivo .o y el executable a.out
• Otros lenguajes intermedios famosos son los generados para la máquina virtual de Java el bytecode; y para la máquina virtual de .NET el MISL para luego ejecutarse en tiempo de ejecución JIT (Just in Time)
• Otros lenguajes intermedios se utilizan en sistemas distribuidos como RPC, CORBA y suIDL, etc.
• En este caso estos lenguajes intermedios se encargan de enmascarar toda la heterogeneidad de las comunicaciones distribuidas en una computadora.

6.1.- Lenguajes intermedios
 En computación, un lenguaje intermedio es el lenguaje de una máquina abstracta diseñada para ayudar en el análisis de los programas de computadora. El término viene de su uso enlos compiladores, donde un compilador primero traduce el código fuente de un programa, en una forma más apropiada para las transformaciones de mejora del código (formausualmente llamada bytecode), como un paso intermedio antes de generar el archivo objeto o el código máquina para una máquina específica.

Una variante del significado de "lenguaje intermedio" se da en esos lenguajes de alto nivel que no soportan o no generanun archivo objeto o código máquina, pero sí generan un lenguaje intermedio. Luego ese lenguaje intermedio se transfiere a un compilador que termina de realizar  el archivo objeto o el código máquina. Esto se emplea generalmente por cuestiones de optimización y portabilidad.

6.2 Notaciones
• Las notaciones sirven de base para expresar sentencias bien definidas.
• El uso más extendido de lasnotaciones sirve para expresar operaciones aritméticas.
• Las expresiones aritméticas se pueden expresar de tres formas distintas: infija, prefija y postfija.
• La diversidad de notaciones corresponde en que para algunos casos es más sencillo un tipo de notación.
• Las notaciones también dependen de cómo se recorrerá el árbol sintáctico, el cual puede ser en inorden, preorden o postorden; teniendo unarelación de uno a uno con la notación de los operadores.
6.2.1 Infija
• La notación infija es la más utilizada por los humanos por que es la más comprensible ya que ponen el operador entre los dos operandos. Por ejemplo a+b-5.
• No existe una estructura simple para representar este tipo de notación en la computadora por esta razón se utilizan otras notaciones.
6.2.2 Postfija
• La...
tracking img