Projeto VM

1. Projeto VM

???
gokernel

(usa Linux Mint)

Enviado em 05/08/2018 - 12:01h

Olá pessoal !

Dia de sábado/domingo, dia de "brincar". ;)

Comecei ontem um projeto para usar em futuros projetos ... o objetivo é criar um projeto tipo: simples e claro( fácil de entender ).

Projeto aqui:
https://github.com/gokernel2017/VM

Para chamar C Nativa Função, no momento só está implementada até 2 parâmetros ...

Compilado e testado no Windows 7(32 bits) e Slax 7(64 bits) usando GCC.
OBS: não compila usando G++.

Falta implementar ainda "muita coisa" ... hoje(domingo) codei mais um pouco enquanto aguardava a torta ...

Comentários/críticas são bem-vindos !

Código Melhor organizado e atualizado ... somente o Link para não poluir ;):
http://codepad.org/EOv9HKYu



  


2. Re: Projeto VM

???
gokernel

(usa Linux Mint)

Enviado em 07/08/2018 - 20:13h

... EDITADO ...

Olá pessoal !

Atualizai o projeto com um código de uma Mini Linguagem ( mini.c )

O código tam um pouco desorganizado mas depois vou arrumar ... testado no Windows 7 (32 bits) e Slax 7 (64 bits);

Para compilar, ler o arquivo README.txt

Código Atualizado ( mIni.c ) ... link para evitar "poluição visual" ;).
http://codepad.org/D2230kq4



3. Re: Projeto VM

???
gokernel

(usa Linux Mint)

Enviado em 12/08/2018 - 11:12h

Projeto atualizado .. função com argumentos ... Strings ...

Testado no Windows 7(32 bits) e Slax 7 (64 bits).

Exemplo de um script usando ( function ):


int i, a = 10, b = 20, c = 3, d = 5, x;

function add_a (arg1, arg2) {
"Function add_a:\n"
"Variable a VALUE: " a;

a = arg1 + arg2;

"arg1: " arg1;
"arg2: " arg2;
"value a: " a;
}

function add_b (arg1, arg2) {
b = arg1 + arg2;
"\nFunction(add_b) ... variable b: " b;
}


"\nSimple Function Example:\n"

//-------------------------
// display a := 10;
// display b := 20;
//-------------------------
"\n"
"Value a: " a;
"Value b: " b;
"\n"

//-------------------------
// CALL THE FUNCTIONS
//-------------------------
//
add_a (150, 50); // a : 200;
add_b (55, 35); // b : 90;

//-------------------------
// display a := 200;
// display b := 90;
//-------------------------
//
"\n"
"Value a: " a;
"Value b: " b;
"\n"





4. Re: Projeto VM

???
gokernel

(usa Linux Mint)

Enviado em 14/08/2018 - 11:51h

Olá Pessoal !

Projeto atualizado e um "stupid bug" corrigido ... versão antiga:
----------------------------------------------------------
Arquivo: vm.c
Função: vm_run ();

case OP_POP_VAR: { // linha: 88
UCHAR i = (UCHAR)a->code[a->ip++]; // linha: 89
Gvar[i].value = sp[0]; break; // linha: 90 ... bug aqui ... retirar ( break; )
/*
switch (Gvar[i].type) {
case TYPE_INT: Gvar[i].value.i = sp->i; break;
case TYPE_FLOAT: Gvar[i].value.f = sp->f; break;
}
*/
sp--;
} continue;

----------------------------------------------------------

Bug corrigido ...

Words implementadas:
01 - include: include "file.s"
02 - for : por enquanto somente loop infinito: for(;;) { ... }
03 - break;

Sério !!! ... Alguém se candidata como tester ???

É Muito importante a função de um "tester" ... estou precisando, pois não tenho tempo para testar tudo ...

T++.



5. Re: Projeto VM

???
gokernel

(usa Linux Mint)

Enviado em 15/08/2018 - 20:53h


Projeto atualizado com novidades:

01 - Implementada variável local ... mas ainda precisa de alguns ajustas;
02 - Implementada chamada de função recursiva .








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts