Saturday, February 7, 2015

Codigo 3 Direcciones

CODIGO 3 DIRECCIONES

Tabla de Simbolos


Existen tablas de simbolos como colores en el mundo, pero es necesario tener un estandar y entonces las columnas basicas necesarias son explicadas en este documento. Es importante guardar en la tabla de simbolos los atributos necesarios. Puedes usar mas de 1 pasada para llenar tu tabla de simbolos. Una excelente tabla de simbolos te simplificara de gran manera la generacion de codigo 3D.




Stack y Heap

La utilizacion de estos dos vectores de tipo entero es primordial al ejecutar el codigo 3D, Aqui se maneja el cambio de ambito( llamada de metodos), manejo de objetos(Heap), instancias de los mismos. En la clase teorica puede que nunca se utilizen pero se utilizan en los proyectos de laboratorio.




Metodos


Los metodos son subrutinas  muy parecidas a las subrutias del codigo ensamblador que al final es codigo de 3 Direcciones. La ejecucion de los metodos es manejada principalmente en el Stack con la ayuda de punteros descrits en el documentos, el stack es una estructura dinamica durante la ejecucion del codigo.






Objetos 

La abstraccion de los objetos es un poco dificil de entender, pero es muy importante saber el algoritmo correcto y eficiente para poder transformar a 3d cualquier tipo de codigo actual,ya que la mayoria de programacion es orientada a objetos.





Si te es dificil entender puedes consultar un ejemplo publique aca : Link

Metodos y Clases


Cuando creamos una clase, esta podria ser traducible a codigo 3D con todos sus atributos asi sea una clase extendida, o bien tenga atributos importados, los metodos de clases importadas o extendidas tambien deben ser traducidos de manera correcta. Entonces como se maneja este tipo de casos:



Nota: Los documentos publicados no son de mi autoria, fueron redactados por el auxiliar de catedra para los alumnos.

Ejercicio

Ejercicio completo incluye codigo 3D y optimizacion  de codigo.

A. Generar su representacion intermedia usando codigo de 3 dimensiones.
B. Señalar sus bloques basiCos y construir el diagrama de flujo.


       
int A[200];

int B[100];

suma = 0;

for(i =0 ; j =100 ; i <100; i++,j--_
{

    if((A[j*2]+B[i] > 350 )
    {
      k =0;
      while(k<i)
     {
        B[i] = B[i] +A[k*2];
        k++;
     }
   }
   suma = suma + B[i];
}
final = (suma -100)      
 

2 comments:

  1. Que tal compañero, muy buena información serias tan amable de compartir los docs en pdf, es que en esos cuadritos muy dificil de leer, se te agradeceria bastante gracias.

    ReplyDelete