Está en la página 1de 1

Compiladores 1

Universidad Mariano Gálvez - Quetzaltenango


Ing. Franz Polanco
Proyecto #1
ENUNCIADO: El primer proyecto consiste en desarrollar un INTÉRPRETE de comandos para operar una pequeña
calculadora como si fuese una máquina abstracta de pila, misma que realizará las operaciones básicas de: suma,
multiplicación, resta, división y potenciación; todas las operaciones serán realizadas sobre números reales.-

El proceso para operar la calculadora será la siguiente: El intérprete de comandos (programa que usted desarrollará)
deberá leer comandos repetidamente y ejecutarlos en cada iteración como si fuese una maquina abstracta de pila hasta
que el usuario ingrese el comando: END.-

La lógica para operar las instrucciones ingresadas será el mismo que el código ensamblador reducido visto en clase. Si se
desea también se tendrá la posibilidad de ingresar los comandos a través de un archivo.

Comandos a utilizar:
PUSH: Coloca un valor numérico en la pila.-
NEG: Cambia el signo al último valor introducido en la pila, dejándolo en el mismo lugar. No tiene operando.-
ADD: Opera los dos últimos valores introducidos a la pila, extrayéndolos y dejando en su lugar el resultado de la suma de
ambos. Por tanto la pila habrá disminuido en un elemento.
MUL: Opera los dos últimos valores introducidos a la pila, extrayéndolos y dejando en su lugar el resultado del producto de
ambos. Por tanto la pila habrá disminuido en un elemento.
DIV: Opera los dos últimos valores introducidos a la pila, extrayéndolos y dejando en su lugar el resultado de la división
entera de ambos, este comando operara solo sí el resultado de la división es entera, en caso contrario desplegará un error
indicando que no puede realizar operaciones reales. La pila habrá disminuido en un elemento.
MOD: Opera los dos últimos valores introducidos en la pila, extrayendo primero el denominador y después el numerador y
dejando en su lugar el modulo. Por tanto la pila habrá disminuido en uno. No tiene operando.
POT: Opera los dos últimos valores introducidos en la pila, extrayendo primero la base y después el exponente y dejando
exponente
en su lugar el resultado de operar una potencia (base ). Por tanto la pila habrá disminuido en uno. No tiene
operando.
OUTPUT: Toma el último valor ingresado a la pila y lo lleva al buffer de salida, en este caso a pantalla. La pila no
sufre cambios.
END: Finaliza ó sale del intérprete de comandos.-

Ejemplos:
Entradas: (pudo ser a través de un archivo)
PUSH 15 (acción: ingresar 1 a la pila)
PUSH 20 (acción: ingresar 2 a la pila)
ADD (acción: saca de la pila los dos últimos valores y colocará a la pila la suma de dichos valores)
OUTPUT (acción: imprime a pantalla el último valor de la pila, es decir imprimirá: 35 en pantalla)
END (acción: termina el programa)
Salidas:
El programa desplegará en pantalla el valor 35
ENTREGA:
La entrega será realizada el día 10 de abril para plan diario y el día 11 de febrero para plan sábado.

Consideraciones generales: el proyecto será calificado durante la clase, deberá contener lo siguiente: documentación interna,
documentación externa: guía del usuario (ayuda de como se ejecutan instrucciones), código fuente. Todo proyecto entregado copiado
con uno ó más proyectos, en código fuente ó en documentación anulará la nota completa de los alumnos que hayan sido dictaminados
como copias. Bajo ningún motivo o se permiten entregas de proyecto después de la fecha establecida. TRABAJO INDIVIDUAL.

| universidad mariano gálvez – Quetzaltenango

También podría gustarte