Interpret de mini-llenguatge de programació

PRELIMINARS:

En aquest exercici assumim que heu resolt alguns exercicis anteriors relacionats amb un llenguatge de programació molt bàsic, que queda exemplificat com segueix:

x=3
y=3+x
z=2*(x+y)
Print(z-y+x)

L’execució del programa anterior escriuria 1515 per la sortida estandard. Amb anterioritat, heu creat els següents fitxers:

Ara us oferim dos fitxers més, anomenats parser.hpp i parser.cpp, que declaren i defineixen una funció parser, la qual rep una llista d’elements atòmics del llenguatge que representen una instrucció, i retorna un arbre binari que representa la mateixa instrucció.

EXERCICI:

Usant les funcions dels fitxers anteriors, haureu de crear un fitxer program.cpp, amb una funció main, que implementa un interpret del llenguatge.

Fixeu-vos que l’enunciat d’aquest exercici ja ofereix uns fitxers que haureu d’utilitzar per a compilar: Makefile, program.cpp, BinaryTree.hpp, evaluate.hpp, execute.hpp, scanner.hpp, parser.hpp, parser.cpp, utils.hpp, utils.cpp. Us falta afegir els fitxers evaluate.cpp, execute.cpp i scanner.cpp que teniu fets d’un exercici anterior, i crear el fitxer program.cpp i implementar-hi el programa principal. Quan pugeu la vostra solució al jutge, només cal que pugeu un tar construït així:

tar cf solution.tar program.cpp execute.cpp evaluate.cpp scanner.cpp

Entrada

L’entrada té una seqüència linies, on cadascuna és una instrucció del llenguatge.

Sortida

El programa dona com a sortida el que seria la sortida resultant d’executar la seqüència d’instruccions donada d’entrada.

Informació del problema

Autoria: PRO1

Generació: 2026-01-25T21:07:20.410Z

© Jutge.org, 2006–2026.
https://jutge.org