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)
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.
ReplyDeletebuenizimo :V
ReplyDelete