Tecnologia

Páginas: 6 (1475 palabras) Publicado: 27 de septiembre de 2010
Unidad VI Generación de Código Intermedio
M.C. Juan Carlos Olivares Rojas

Agenda
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.

Agenda
6.4 Esquemas de generación. 6.4.1 Expresiones. 6.4.2 Declaración de variables, constantes 6.4.3Estatuto de asignación. 6.4.4 Estatuto 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.

Generador de código intermedio
• Los lenguajes intermedios generalmente tienen árboles dederivación más pequeños que su contraparte original. • Se puede representar 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.

Generador de código intermedio
• a := b*-c+b*-c • abc -*bc -*+= • x := y op z • x+y*z • t1:=y*z • t2:=x+t1

6.1 Lenguajes intermedios
• Los lenguajes intermedios nos sirvenpara representar la producción final de nuestro lenguaje fuente. • Existen muchos lenguajes intermedios, la mayoría de ellos son una representación más simplificada del código original para facilitar la traducción hacia el código final.

Lenguajes intermedios
• Otros lenguajes intermedios sirven de base o como representación parcial de otros procesos. • Por ejemplo al compilar un programa en C enWindows o DOS, se produce un código objeto con extensión .obj para que posteriormente el enlazador cree finalmente el código executable .exe

Lenguajes intermedios
• 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áquinavirtual de .NET el MISL para luego ejecutarse en tiempo de ejecución JIT (Just in Time)

Lenguajes intermedios
• Otros lenguajes intermedios se utilizan en sistemas distribuidos como RPC, CORBA y su IDL, etc. • En este caso estos lenguajes intermedios se encargan de enmascarar toda la heterogeneidad de las comunicaciones distribuidas en una computadora

6.2 Notaciones
• Las notaciones sirven debase para expresar sentencias bien definidas. • El uso más extendido de las notaciones sirve para expresar operaciones aritméticas. • Las expresiones aritméticas se pueden expresar de tres formas distintas: infija, prefija y postfija.

Notaciones
• 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ómose recorrerá el árbol sintáctico, el cual puede ser en inorden, preorden o postorden; teniendo una relació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 denotación en la computadora por esta razón se utilizan otras notaciones.

6.2.2 Postfija
• La notación postfija pone el operador al final de los dos operandos, por lo que la expresión queda: ab+5• La notación posftfija utiliza una estructura del tipo LIFO (Last In First Out) pila, la cual es la más utilizada para la implementación.

6.2.3 Prefija
• La notación prefija pone el operador primero quelos dos operandos, por lo que la expresión anterior queda: +ab-5. Esto se representa con una estructura del tipo FIFO (First In First Out) o cola. • Las estructuras FIFO son ampliamente utilizadas pero tienen problemas con el anidamiento aritmético.

6.3 Representación de código intermedio
• Existen maneras formales para representar código intermedio. • Estas notaciones simplifican la...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Tecnologia
  • Tecnología
  • Tecnologia
  • Tecnologia
  • Tecnologia
  • Tecnologia
  • Tecnologia
  • Tecnologia

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS