-
Notifications
You must be signed in to change notification settings - Fork 0
digas111/Interpreter
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 <nome do ficheiro> O programa lida com o sguinte conjunto de instruções: ler(<var>); lê um número a partir do stdin. escrever(<var ou num>); escreve ou o número que está como argumento ou o valor que está guardado na variável. <var> = <var ou num> <símbolo de operação aritmética> <var ou num>; Operações aritméticas com está implementado em C. label <label>; serve de etiqueta para o programa saber para onde dirigir o program counter if <var> goto <label> se <var> for positivo ou negativo segue para a label , senão vai para a linha a seguir goto <label>; segue para a linha que tem como label <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
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published