Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/digas111/Interpreter
https://github.com/digas111/Interpreter
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/digas111/Interpreter
- Owner: digas111
- Created: 2019-03-29T17:15:07.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2019-04-22T22:56:13.000Z (almost 6 years ago)
- Last Synced: 2024-04-24T16:41:38.834Z (9 months ago)
- Language: C
- Size: 206 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.txt
Awesome Lists containing this project
- AwesomeInterpreter - Interpreter
README
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.outO 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.= ;
Operações aritméticas com está implementado em C.label ;
serve de etiqueta para o programa saber para onde dirigir o program counterif goto
se for positivo ou negativo segue para a label , senão vai para a linha a seguirgoto ;
segue para a linha que tem como label .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