Mini Linguagem

1. Mini Linguagem

???
gokernel

(usa Linux Mint)

Enviado em 22/08/2015 - 19:28h


Olá !

O objetivo deste é de "apresentar" uma "Mini Linguagem" para quem tem curiosidade ...

Tentarei reduzir o código ...

BUILD/VERSION: 0001:
http://codepad.org/HoWmAY49

BUILD/VERSION: 0001
Falta implementar:
--------------------------------------
int lex(void);
int stmt(ASM *a);
void expression(ASM *a);
--------------------------------------
Essa fase inicial serve apenas para melhor compreender o código inicial ...

Quem tiver pergunta, fique a vontade para fazer ...

T+.



  


2. Re: Mini Linguagem

???
gokernel

(usa Linux Mint)

Enviado em 22/08/2015 - 20:43h

Olá Sam. L.

Legal/útil a sua dica ... vou fazer isso quando tiver algo funcional, já criei uma pasta ( MINI_LANGUAGE ) com varias BUILDS/VERSION( mini_0001.c, mini_0002.c ) futuramente disponibilizarei para baixar.

Atualmente estou com falta de tempo ... esse código fiz na casa de minha sogra hoje a tarde( "caducando" com o filhinho, ;) ).

E se alguém achar melhor "comentar" o código em português é só sugerir ... OK, OK, sei que tenho um péssimo inglês mas tento melhorar ;).

T+.



3. Re: Mini Linguagem

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 22/08/2015 - 23:21h

Também vou acompanhar.

Pena não ter suporte a x64 =\

Mas nada que compilar com a flag -m32 não resolva ;)

[]'s

T+

--

body@human: $ sudo su
brain@human: # apt-get purge -y windows* && echo "Windows removed successfully"




4. Re: Mini Linguagem

???
gokernel

(usa Linux Mint)

Enviado em 23/08/2015 - 09:03h

Obrigado pelo parabéns Sam. L. !

VERSAO 0002:
http://codepad.org/uU4g7bsx

teste:

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

// int inicio, final;

int a = 255; // sim funciona, nao provoca erro.



OBS:
A função ( void TestPrintVar (void) ) é temporária servindo apenas para teste ...

A próxima implementação será usando "expression" onde multiplica/divide/soma/diminue usando assembly.

OBS2:Estou fazendo/mostrando os códigos aos poucos pois é muito importante compreender este pois ficará mais fácil compreender os próximos ...

T.



5. Re: Mini Linguagem

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 23/08/2015 - 11:49h

Opa Amigo, tudo certo?

Se quiser, posso ficar 'encarregado' dos comentários. Meu Inglês é bem aceitável, e o Português brasileiro, também (não kkk).

Espero poder ajudar

[]'s

T+

--

body@human: $ sudo su
brain@human: # apt-get purge -y windows* && echo "Windows removed successfully"




6. Re: Mini Linguagem

???
gokernel

(usa Linux Mint)

Enviado em 23/08/2015 - 14:50h


Oi "Thihup", blz !

Por enquanto quando me lembrar fica o meu comentário em pt mesmo ...

Se quiser ajudar, ajude neste sentido:
01: Compilando para Linux e informando se houve algum erro/mensagem ... raramente inicio o note no Linux.
02: Quando o programa estiver mais adiantado, poderá ajudar criando/testando os "scripts" ...

OBS: Detesto comentar os programas em pt . ;).

T+.



7. Re: Mini Linguagem

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 23/08/2015 - 15:03h

gokernel escreveu:


Oi "Thihup", blz !

Por enquanto quando me lembrar fica o meu comentário em pt mesmo ...

Se quiser ajudar, ajude neste sentido:
01: Compilando para Linux e informando se houve algum erro/mensagem ... raramente inicio o note no Linux.
02: Quando o programa estiver mais adiantado, poderá ajudar criando/testando os "scripts" ...

OBS: Detesto comentar os programas em pt . ;).

T+.


Opa, tranquilo.

Isso aí eu sei fazer de melhor.

Vou ver se não consigo deixar em x64 também.

[]'s

T+

--

body@human: $ sudo su
brain@human: # apt-get purge -y windows* && echo "Windows removed successfully"




8. Re: Mini Linguagem

???
gokernel

(usa Linux Mint)

Enviado em 26/08/2015 - 19:34h

Implementado:
01: Expression.
02: Chamada de função( C_função ).

http://codepad.org/Oy4vbeyU

Quem não entender completamente fique a vontade para perguntar( pois o objetivo eh esse mesmo "compartilhar conhecimento" ) ... se quiserem perguntar via e-mail fiquem a vontade.

TESTE:

/*
**-------------------------------------------------------------------
**
** FUNCOES EXTERNAS:
**
** void print (int i);
** int soma (int a, int b);
**
**-------------------------------------------------------------------
*/

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

// int inicio, final;

//
// i = 215;
//
i = a * b + c * d;

print (i); // 255

print ( a + b ); // 30

i = soma (c, d);

print (i); // 8



No próximo iremos implementar parâmetros com "string": print("static_string");

T+.



9. Re: Mini Linguagem

???
gokernel

(usa Linux Mint)

Enviado em 26/08/2015 - 21:21h


Atualizado bug encontrado/resolvido: funcao ( proc_func ) não funcionava expressão com parentes.
exemplo:
print ( (a+b)+10 );

http://codepad.org/DOHTmmU3

TESTE

/*
**-------------------------------------------------------------------
**
** FUNCOES EXTERNAS:
**
** void print (int i);
** int soma (int a, int b);
** void var (void);
**
**-------------------------------------------------------------------
*/

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

// int inicio, final;

//
// i = 215;
//
i = a * b + c * d;

print (i); // 255

print ( a + b ); // 30

i = soma (c, d);

print (i); // 8

var(); // mostra a lista de variaveis criadas




10. Re: Mini Linguagem

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 26/08/2015 - 21:32h

Opa Manolo, vc é mitooo!

Eu sou programador também, mas posso ser o (burr)Usuario. E eu encontrei alguns bugs (mesmo com esse atualizado dos parenteses). Desculpe qualquer incoveniente.

(Saida: 'quote'; Codigo '.cs' : 'code')


int i, a = 10, b = 20, c = 3, d = 5 // Sem o ponto e virgula
i = a * b + c * d;

print (i); // 255

print ( a + b ); // 30

i = soma (c, d);

print (i); // 8



Saida:

./mini teste.cs
0
10
0

Exiting With Sucess: STACK = 0 !!!



int i = int a * b + c * d; // Sem sentido <-

print (i); // 255

print ( a + b ); // 30

i = soma (c, d);

print (i); // 8



./mini teste.cs
0
0
0

Exiting With Sucess: STACK = 0 !!!


Aparentemente achei apenas esses erros. Vou continuar testando para ver se não acho outros erros (isto é, se me for permitido. Caso seja fora de meu alcance ou esteja fazendo você fazer coisas que um 'indiota' não faria, não faço mais [falei isso numa boa])

Espero ter ajudado

[]'s

T+

--

body@human: $ sudo su
brain@human: # apt-get purge -y windows* && echo "Windows removed successfully"




11. Re: Mini Linguagem

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 27/08/2015 - 08:56h

Então não tem problema eu mandar os erros aqui, né?

[]'s

T+

--

body@human: $ sudo su
brain@human: # apt-get purge -y windows* && echo "Windows removed successfully"




12. Re: Mini Linguagem

???
gokernel

(usa Linux Mint)

Enviado em 27/08/2015 - 21:10h


BUILD: 0004.

01: Implementada chamada de funcao com parametro tipo "string".
02: Word int melhorada.

http://codepad.org/Ju75Fb9j

test.cs

/*
**-------------------------------------------------------------------
**
** FUNCOES EXTERNAS:
**
** void print (int i);
** int soma (int a, int b);
** void var (void);
** void printf (char *format, ...);
**
**-------------------------------------------------------------------
*/

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

// int inicio, final;

//
// i = 215;
//
i = a * b + c * d;

printf ("Variavel i = %d\n", i); // 215

printf ("EXPRESSAO (a + b) = %d\n", a + b ); // 30

i = soma (c, d);

printf ("AGORA DINOVO i = %d\n", i); // 8

var(); // mostra a lista de variaveis criadas






01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts