Codigo De Tercetos

Páginas: 22 (5310 palabras) Publicado: 4 de junio de 2012
Traductores, Compiladores e Intérpretes

1

Tema 7 Generación de Código
En el modelo de análisis y síntesis de un compilador, la etapa inicial traduce un programa fuente a una representación intermedia a partir de la cual la etapa final genera el código objeto. Los detalles del lenguaje objeto se confinan en la etapa final, si esto es posible. Aunque un programa fuente se puede traducirdirectamente al lenguaje objeto, algunas ventajas de utilizar una forma intermedia independiente de la máquina son: 1. Se facilita la redestinación; se puede crear un compilador para una máquina distinta uniendo una etapa final para la nueva máquina a una etapa inicial ya existente. 2. Se puede aplicar a la representación intermedia un optimizador de código independiente de la máquina.

Haylenguajes que son pseudointerpretados que utilizan un código intermedio llamado código-P que utiliza lo que se denomina bytecodes (sentencias de un µP hipotético). Por ejemplo Java utiliza los ficheros .class, éstos tienen unos bytecodes que se someten a una JavaVirtualMachine, para que interprete esas sentencias. En este capítulo se muestra cómo se pueden utilizar los métodos de analizadores dirigidospor la sintaxis para traducir a un código intermedio, construcciones de lenguajes de programación como declaraciones, asignaciones y proposiciones de flujo de control. La generación de código intermedio se puede intercalar en el análisis sintáctico.

Generación de código intermedio.

Realizados por: María del Mar Aguilera Sierra y Sergio Gálvez Rojas

Traductores, Compiladores e Intérpretes2

Código de Tercetos
Para facilitar la comprensión de esta fase, no generaremos código máquina puro, sino un código intermedio cercano a la máquina, que además facilitará la optimización de código. El código intermedio que vamos a usar , posee cuatro apartados: • Operando 1º • Operando 2º • Operador • Resultado y se denomina código de 3 direcciones, de tercetos, o máximo 3 operandos. Lasinstrucciones de tres direcciones son análogas al código ensamblador, pueden tener etiquetas simbólicas y existen instrucciones para el flujo de control. Hay algunas instrucciones que carecen de algunos de estos apartados; los tercetos que podemos usar son: • Asignación binaria: x := y op z, donde op es una operación binaria aritmética o lógica. Asignación unaria: x := op, donde op es una operaciónunaria. Las operaciones unarias principales incluyen el menos unario, la negación lógica, los operadores de desplazamiento y operadores de conversión de tipos. Asignación simple o copia: x := y, donde el valor de y se asigna a x. Salto incondicional: goto etiqueta. Saltos condicionales: if x oprelacional y goto etiqueta Para llamar a un procedimiento se tienen códigos para meter los parámetros enla pila de llamadas, para llamar al procedimiento indicando el número de parámetros que debe recoger de la pila, para tomar un valor de la pila, y para retornar. param x Mete al parámetro real x en la pila. call p, n Llama al procedimiento p, y le dice que tome n parámetros de la cima de la pila pop x Toma un parámetro de la pila return y Retorna el valor y Asignación indexada: x := y[i]; x[i] :=y, donde x o y es la dirección base, y donde i es el desplazamiento Asignación indirecta: x:=&y; x:=*y; Son asignaciones de direcciones y asignaciones de punteros
Realizados por: María del Mar Aguilera Sierra y Sergio Gálvez Rojas



• • • •





Generación de código intermedio.

Traductores, Compiladores e Intérpretes

3

Código de Tercetos
La elección de operadorespermisibles es un aspecto importante en el diseño de código intermedio. El conjunto de operadores debe ser lo bastante rico como para implantar las operaciones del lenguaje fuente. Un conjunto de operadores pequeño es más fácil de implantar en una nueva máquina objeto. Sin embargo un conjunto de instrucciones limitado puede obligar a la etapa inicial a generar largas secuencias de proposiciones para...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Soneto-Terceto
  • terceto
  • Codigo
  • Codigos
  • Codigo
  • Codigos
  • codigo
  • Codigo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS