readme.txt
April 22, 2019 · View on GitHub
1º trabalho de Laboratório de programação 2018/2019 Interpreter realizado por Armando Martins(201504230) e Diogo Ribeiro(201504115)
Para compilar: gcc *.c
Para executar: ./a.out
O programa lida com o sguinte conjunto de instruções:
ler(); lê um número a partir do stdin.
escrever(); escreve ou o número que está como argumento ou o valor que está guardado na variável.
= <símbolo de operação aritmética> ; Operações aritméticas com está implementado em C.
label
if goto
goto
quit; termina o programa.
Sobre a estrutura do código: O programa utiliza uma linked list de instruçoes em que cada instruçao contem um kind para distinguir o tipo de intruçao e 3 elementos cada um com um kind para saber que tipo de elemento se trata. Para lidar com as labels e e variaveis usamos uma tabela de hash que para as lables guarda o apontador para o nó da linked list a que pertence essa label e para as variaveis guarda o respetivo valor.
Notas importantes: -labels de var's são strings com 25 carateres e não podem começar com números -as variáveis podem guardar números decimais ou inteiros -para valores negativos deve-se atribuir primeiro a uma variavel