Skip to content

Little poc é uma versão reduzida e para testes de pré-compilador JIT e AOT rodando totalmente em contêineres sem a necessidade direta de infraestrutura de sistemas operacionais e maquinas virtuais

License

Notifications You must be signed in to change notification settings

rogerinn/little_poc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔧 Compilação e uso

Para rodar a aplicação, execute os comandos abaixo:

  1. Abra um terminal e copie este repositório com o comando

    git clone https://github.com/rogerinn/little_poc/

    ou use a opção de download.

  2. Entre na pasta com

    cd little_poc
  3. Rode a aplicação

    ./start.sh nome_do_arquivo.js > opcodes.txt

    Ou

    ./start.sh nome_do_arquivo.js > opcodes.rnc

    para linkar os std.

Arquitetura base: 5) Atualmente o modelo é simples, já está em refatoração para o pre-compiler JIT e AOT.

   struct SyntaxRule syntax_table[] = {
    {
        "let", { 
                {{"VariableExpr", ",", "VariableExpr", ";"}, 4},
                {{"VariableExpr", "=", "VariableExpr", ";"}, 4},
                {{"VariableExpr", "=", "[", "]", ";"}, 5},
                {{"VariableExpr", "=", "{", "}", ";"}, 5}, 
                {{"VariableExpr", "=", "[", "VariableExpr", "]", ";"}, 6}, 
                {{"VariableExpr", "=", "[", "MultExpr", "]", ";"}, 6},
                {{"VariableExpr", "=", "{", "VariableExpr", "}", ";"}, 6}, 
                {{"VariableExpr", "=", "{", "MultExpr", "}", ";"}, 6},
                {{"VariableExpr", "=", "\"", "VariableExpr", "\"", ";"}, 6}, 
                {{"VariableExpr", "=", "\'", "VariableExpr", "\'", ";"}, 6},
                {{"VariableExpr", "=", "VariableExpr", "=", ">", "VariableExpr", ";"}, 7}, 
                {{"VariableExpr", "=", "VariableExpr", "=", ">", "{", "VariableExpr", "}", ";"}, 9},    
                {{"VariableExpr", "=", "(", "MultExpr", ")", "=", ">", "{", "MultExpr", "}", ";"}, 11}
            }, 13
    },
    {
        "const", { 
                {{"VariableExpr", ",", "VariableExpr", ";"}, 4},
                {{"VariableExpr", "=", "VariableExpr", ";"}, 4},
                {{"VariableExpr", "=", "[", "]", ";"}, 5},
                {{"VariableExpr", "=", "{", "}", ";"}, 5}, 
                {{"VariableExpr", "=", "[", "VariableExpr", "]", ";"}, 6}, 
                {{"VariableExpr", "=", "[", "MultExpr", "]", ";"}, 6},
                {{"VariableExpr", "=", "{", "VariableExpr", "}", ";"}, 6}, 
                {{"VariableExpr", "=", "{", "MultExpr", "}", ";"}, 6},
                {{"VariableExpr", "=", "\"", "VariableExpr", "\"", ";"}, 6}, 
                {{"VariableExpr", "=", "\'", "VariableExpr", "\'", ";"}, 6},
                {{"VariableExpr", "=", "VariableExpr", "=", ">", "VariableExpr", ";"}, 7}, 
                {{"VariableExpr", "=", "VariableExpr", "=", ">", "{", "VariableExpr", "}", ";"}, 9},    
                {{"VariableExpr", "=", "(", "MultExpr", ")", "=", ">", "{", "MultExpr", "}", ";"}, 11}
            }, 13
    },
    {
        "import", { 
                {{"\"", "VariableExpr", "\"", ";"}, 4},
                {{"\'", "VariableExpr", "\'", ";"}, 4},
                {{"{", "VariableExpr", "}", ";"}, 4},
            }, 3
    }
};
  1. A Base atual de todo o modelo de JIT e AOT funcionam independentes de SO, toda camada de supervisionamento é feita de forma rootless, com cgroups e namespaces melhorando isolamento, capacidade de compilação e interpretação para micro ou macros compilações e funções distribuídas.
OPBLOCK: import
OPCODE: "
VariableExpr: aa
OPCODE: "
OPCODE: ;
OPBLOCK: import
OPCODE: '
VariableExpr: aa
OPCODE: '
OPCODE: ;
OPBLOCK: let
VariableExpr: aa
OPCODE: =
OPCODE: (
MultExpr: a 
MultExpr: , 
MultExpr: a 
OPCODE: )
OPCODE: =
OPCODE: >
OPCODE: {
MultExpr: let 
MultExpr: name 
MultExpr: = 
MultExpr: " 
MultExpr: Rogerio 
MultExpr: " 
MultExpr: ; 
MultExpr: console 
MultExpr: . 
MultExpr: log 
MultExpr: ( 
MultExpr: " 
MultExpr: aaa 
MultExpr: " 
MultExpr: ) 
MultExpr: ; 
MultExpr: return 
MultExpr: name 
MultExpr: ; 
OPCODE: }
OPCODE: ;
OPBLOCK: let
VariableExpr: aa
OPCODE: =
OPCODE: (
MultExpr: a 
MultExpr: , 
MultExpr: a 
OPCODE: )
OPCODE: =
OPCODE: >
OPCODE: {
MultExpr: let 
MultExpr: name 
MultExpr: = 
MultExpr: " 
MultExpr: Rogerio 
MultExpr: " 
MultExpr: ; 
MultExpr: console 
MultExpr: . 
MultExpr: log 
MultExpr: ( 
MultExpr: " 
MultExpr: aaa 
MultExpr: " 
MultExpr: ) 
MultExpr: ; 
MultExpr: return 
MultExpr: name 
MultExpr: ; 
OPCODE: }
OPCODE: ;
OPBLOCK: let
VariableExpr: aa
OPCODE: =
OPCODE: (
MultExpr: a 
MultExpr: , 
MultExpr: a 
OPCODE: )
OPCODE: =
OPCODE: >
OPCODE: {
MultExpr: let 
MultExpr: name 
MultExpr: = 
MultExpr: " 
MultExpr: Rogerio 
MultExpr: " 
MultExpr: ; 
MultExpr: console 
MultExpr: . 
MultExpr: log 
MultExpr: ( 
MultExpr: " 
MultExpr: aaa 
MultExpr: " 
MultExpr: ) 
MultExpr: ; 
MultExpr: return 
MultExpr: name 
MultExpr: ; 
OPCODE: }
OPCODE: ;
OPBLOCK: let
VariableExpr: aa
OPCODE: =
OPCODE: (
MultExpr: a 
MultExpr: , 
MultExpr: a 
OPCODE: )
OPCODE: =
OPCODE: >
OPCODE: {
MultExpr: let 
MultExpr: name 
MultExpr: = 
MultExpr: " 
MultExpr: Rogerio 
MultExpr: " 
MultExpr: ; 
MultExpr: console 
MultExpr: . 
MultExpr: log 
MultExpr: ( 
MultExpr: " 
MultExpr: aaa 
MultExpr: " 
MultExpr: ) 
MultExpr: ; 
MultExpr: return 
MultExpr: name 
MultExpr: ; 
OPCODE: }
OPCODE: ;
OPBLOCK: let
VariableExpr: aa
OPCODE: =
OPCODE: (
MultExpr: a 
MultExpr: , 
MultExpr: a 
OPCODE: )
OPCODE: =
OPCODE: >
OPCODE: {
MultExpr: let 
MultExpr: name 
MultExpr: = 
MultExpr: " 
MultExpr: Rogerio 
MultExpr: " 
MultExpr: ; 
MultExpr: console 
MultExpr: . 
MultExpr: log 
MultExpr: ( 
MultExpr: " 
MultExpr: aaa 
MultExpr: " 
MultExpr: ) 
MultExpr: ; 
MultExpr: return 
MultExpr: name 
MultExpr: ; 
OPCODE: }
OPCODE: ;
OPBLOCK: let
VariableExpr: name
OPCODE: =
OPCODE: [
MultExpr: 1 
MultExpr: , 
MultExpr: 2 
OPCODE: ]
OPCODE: ;

 ------->> Tempo: 0.000066 segundos <<-------

About

Little poc é uma versão reduzida e para testes de pré-compilador JIT e AOT rodando totalmente em contêineres sem a necessidade direta de infraestrutura de sistemas operacionais e maquinas virtuais

Topics

Resources

License

Stars

Watchers

Forks