Para rodar a aplicação, execute os comandos abaixo:
-
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.
-
Entre na pasta com
cd little_poc
-
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
}
};
- 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 <<-------