formato de analisis de obras de arte

Páginas: 18 (4468 palabras) Publicado: 4 de abril de 2013





Diseño de Compiladores 2012
Tercera entrega:
Grupo 30

Damián Diez
d.a.diez87@gmail.com
Andrea Marigomez
andreamarigomez@gmail.com



Índice



1. Introducción………………………………………………………. 3

2. Descripción del proceso. ……………………………………….….3
3. Mecanismo para la declaración de variables………………… ...….3
4. Mecanismo utilizado para la generación decódigo Assembler.... 4
4.1 Asignaciones…………………………………………………………….. 6
4.1.1 Pseudocódigo para la generación de asignaciones…………...6
4.2 Generación de código para la suma…………………………………….8
4.3 Generación de código para la resta…………………………………….11
4.4 Generación de código para el producto………………………………..13
4.5 Generación de código para la división…………………………………16
5. Mecanismo para la generación desaltos…………………………....18
5.1 Pseudocódigo para generar Bifurcación Incondicional……………….18
5.2 Pseudocódigo para generar Bifurcación si Falso………………………19
5.3 Generación de código para la comparación…………………………….20

6. Generación de etiquetas………………………………………………20
7. Otros Métodos utilizados…………………………………………….21
8. Diagrama de clases……………………………………………………23
9. Conclusiones…………………………………………………………...26





1.Introducción

La generación de código assembler es una de las últimas fases del proceso de compilación. El objetivo de esta etapa es generar código ensamblador a partir del código intermedio (en nuestro caso Polaca Inversa) y de la tabla de símbolos. Dicho código estará listo para ser enlazado y luego ejecutado, realizando el o los chequeos asignados en tiempo de ejecución.


2. Descripción delproceso

Una vez finalizado el análisis léxico y sintáctico, y la generación de código intermedio, se procede a la generación de código Assembler, siempre y cuando no se hayan detectado errores. Esta funcionalidad está encapsulada en la clase Generador, especialmente diseñada para esta última etapa.

Descripción en pseudocódigo del algoritmo de generación de assemblerimplementado en la clase Generador:

DATA: StringBuffer donde se almacenaran las líneas de declaración de variables.
CODE: StringBuffer donde se almacenaran las líneas de código .
HEADER: StringBuffer donde se almacenaran las líneas del encabezado.
Polacas: vector de ítems en notación polaca inversa.
TSimbolos: Tabla de Símbolos.

Paso 1: Iniciar el HEADER;
Se agrega el encabezadodel código de salida.
Paso 2:GenerarVariable();
Por cada variable definida en TS:
Se le asigna el correspondiente espacio en memoria.
Paso 3: GenerarCod(Polacas);
Por cada ítem de la polaca inversa.
Si es operando, se agrega a la pila.
Si es operador, desapila los últimos dos elementos y genera código en CODE.
Paso 5: Se colocan las líneas para imprimir los errores considerados (overflowen la multiplicación) y finalmente se pone el código para cerrar el programa.
Paso 6: Se anexa todo el código assembler generado y se retorna al parser;

Para la traducción de código ensamblador a código máquina (Pentium) utilizamos la herramienta MASM32 provista por la cátedra.

3. Mecanismo para ladeclaración de variables
La generación de variables se hace recorriendo la tabla de símbolos y agregando cada identificador que aparece en la misma de la siguiente manera :

mientras tenga elementos en TSimbolos{
si ( elemento seleccionado tiene uso= puntero o variable)
entonces
agregar un _ a su nombre}

Como vemos, a las variables y punteros se les antepone unguion bajo para evitar confusiones con palabras propias de Assembler (por ejemplo, podría tenerse una variable del programador llamada “MOV”, lo cual traería problemas).

Si se trata de identificadores de ulongint, se utiliza DD (4 bytes).

Por ejemplo, si se tiene la variable a, de tipo ulongint, la declaración queda:

_a DD 0

Por otro...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Analisis Obras de arte
  • Análisis De Percepción De Obras De Arte
  • Analisis formal de obras de arte
  • Analisis tecnico de 3 obras de arte
  • Guías para analisis de imagenes, obras de arte
  • Formatos De Obras
  • analisis obras de arte
  • Analisis de obras de arte

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS