Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Facultad de Ingeniera
Escuela de Ciencias y Sistemas
1er. Semestre 2014
Organizacin de Lenguajes y Compiladores 1
PRCTICA 2
Jos Eduardo Lpez Villatoro
Carlos Josu Dvila
Diego Alejandro Castellanos Tnchez
Indice
DESCRIPCION GENERAL ............................................................................................................................................2
OBJETIVO GENERAL ..............................................................................................................................................2
OBJETIVOS ESPECFICOS .......................................................................................................................................2
DESCRIPCIN ............................................................................................................................................................2
CARACTERSTICAS DE LA SOLUCIN .....................................................................................................................2
DISEO DE LA INTERFAZ .......................................................................................................................................2
Archivo ..............................................................................................................................................................2
Ejecutar .............................................................................................................................................................2
Ayuda ................................................................................................................................................................3
DESCRIPCIN DEL LENGUAJE ...................................................................................................................................3
CDIGO DE 3 DIRECCIONES ..................................................................................................................................3
Temporales y variables .....................................................................................................................................3
Instrucciones y acceso a variables ....................................................................................................................3
Etiquetas y Saltos..............................................................................................................................................4
Declaracin y llamada a funciones ...................................................................................................................5
Instruccin printf ..............................................................................................................................................5
Stack y heap ......................................................................................................................................................5
EJEMPLO COMPLETO DE UN METODO EN CDIGO DE TRES DIRECCIONES ........................................................6
CONSIDERACIONES ...............................................................................................................................................6
DESCRIPCION GENERAL
OBJETIVO GENERAL
Que el estudiante aprenda a realizar un anlisis sintctico implementando un rbol de Sintaxis Abstracta para la
ejecucin de mtodos, ciclos y condiciones.
OBJETIVOS ESPECFICOS
DESCRIPCIN
Se necesita una aplicacin que lea Cdigo de 3 Direcciones Estndar y lo ejecute para obtener la salida del mismo,
a fin de comprobar si dicho cdigo funciona correctamente.
Archivo de entrada: Este archivo contiene las instrucciones en cdigo de 3 direcciones que se desean ejecutar.
CARACTERSTICAS DE LA SOLUCIN
Para responder a las necesidades que se le plantean, se ha pensado en el desarrollo de una aplicacin con
una gramtica implementada en GoldParser con el fin de poder usar esta misma estructura para un futuro y en
lenguajes distintos.
Se debe realizar un editor de texto, el cual sea capaz de escribir, leer, editar y guardar texto con el fin de poder
realizar la ejecucin del cdigo de 3 direcciones.
Se deben de mostrar de manera funcional y agradable al usuario resumen de errores detectados, y el
resultado de la ejecucin del cdigo.
DISEO DE LA INTERFAZ
Disear una interfaz grafica amigable y cmoda que facilite la creacin o carga de archivos de entrada para la
ejecucin del cdigo.
La aplicacin deber contener como mnimo los siguientes mens:
Archivo
Ejecutar
-
Ayuda
Temporales y variables
Los temporales se debern crear de acuerdo a la siguiente sintaxis:
T<num>
Por ejemplo:
T1
T2
T3
Ejemplo:
t1 = 5 * 5;
t2 = 6 - 3
t3 = t1 * t2;
Pila[t3] = 10;
t4 = mem[t3];
Operadores Aritmticos Vlidos:
Operacin:
Suma
Resta
Multiplicacin
Divisin
Mdulo
Smbolo:
+
*
/
%
Etiquetas y Saltos
Las etiquetas debern ser generadas de acuerdo a la siguiente sintaxis:
Lnum:
Donde num es un nmero generado por medio de un contador.
Para realizar saltos a una etiqueta se utilizar la sintaxis:
goto Lnum;
Por ejemplo:
L1:
//Instruccin en 3 direcciones
goto L1;
Existen tambin saltos condicionales que tendrn la siguiente estructura:
If ( condicin ) goto Lnum;
Donde la condicin solo puede ser un operador lgico como los anteriormente explicados. Por ejemplo:
L3:
if (3 < P ) goto L1;
goto L3;
L1:
Instruccin printf
La instruccin printf ser la encargada de realizar la impresin a la consola de salida. La sintaxis de esta
instruccin ser:
Printf(valor,tipo);
Donde:
Stack y heap
La stack, el heap y sus respectivos punteros (P y m) debern ser nombrados y definidos de la siguiente forma:
CONSIDERACIONES