{"id":15782372,"url":"https://github.com/rogerinn/little_poc","last_synced_at":"2026-04-09T08:03:07.496Z","repository":{"id":226802227,"uuid":"769678481","full_name":"rogerinn/little_poc","owner":"rogerinn","description":"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","archived":false,"fork":false,"pushed_at":"2024-03-18T16:07:35.000Z","size":76,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-20T08:46:46.259Z","etag":null,"topics":["ast","c","compiler","compilers","golang","javascript","nodejs","parser","rust"],"latest_commit_sha":null,"homepage":"https://www.linkedin.com/company/nucleus-int/about/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rogerinn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-09T18:44:23.000Z","updated_at":"2024-03-10T00:16:45.000Z","dependencies_parsed_at":"2024-03-18T17:43:14.647Z","dependency_job_id":null,"html_url":"https://github.com/rogerinn/little_poc","commit_stats":{"total_commits":27,"total_committers":2,"mean_commits":13.5,"dds":"0.14814814814814814","last_synced_commit":"b4d115042f01caafa970189c41b67d5e4b7b1a4d"},"previous_names":["rogerinn/little_poc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rogerinn/little_poc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogerinn%2Flittle_poc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogerinn%2Flittle_poc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogerinn%2Flittle_poc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogerinn%2Flittle_poc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rogerinn","download_url":"https://codeload.github.com/rogerinn/little_poc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogerinn%2Flittle_poc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279020905,"owners_count":26086948,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ast","c","compiler","compilers","golang","javascript","nodejs","parser","rust"],"created_at":"2024-10-04T19:06:23.268Z","updated_at":"2025-10-14T20:32:37.470Z","avatar_url":"https://github.com/rogerinn.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## 🔧 Compilação e uso\n\nPara rodar a aplicação, execute os comandos abaixo:\n\n1) Abra um terminal e copie este repositório com o comando\n    ```bash\n    git clone https://github.com/rogerinn/little_poc/\n    ```\n    ou use a opção de download.\n\n2) Entre na pasta com\n    ```bash\n    cd little_poc\n    ```\n\n3) Rode a aplicação\n    ```bash\n    ./start.sh nome_do_arquivo.js \u003e opcodes.txt\n    ```\n    Ou \n    ```bash\n    ./start.sh nome_do_arquivo.js \u003e opcodes.rnc\n    ```\n    para linkar os `std`.\n    \nArquitetura base: \u003cimg src=\"https://media.discordapp.net/attachments/638203747608166442/1216137973943369749/Untitled-2024-02-27-0216.png?ex=65ff4bbf\u0026is=65ecd6bf\u0026hm=309be9571e9216371bd63f4aa546b9700ce5ea98ebcfca275863978a179f158e\u0026=\u0026format=webp\u0026quality=lossless\u0026width=1440\u0026height=518\"\u003e\n5) Atualmente o modelo é simples, já está em refatoração para o pre-compiler JIT e AOT.\n```c\n   struct SyntaxRule syntax_table[] = {\n    {\n        \"let\", { \n                {{\"VariableExpr\", \",\", \"VariableExpr\", \";\"}, 4},\n                {{\"VariableExpr\", \"=\", \"VariableExpr\", \";\"}, 4},\n                {{\"VariableExpr\", \"=\", \"[\", \"]\", \";\"}, 5},\n                {{\"VariableExpr\", \"=\", \"{\", \"}\", \";\"}, 5}, \n                {{\"VariableExpr\", \"=\", \"[\", \"VariableExpr\", \"]\", \";\"}, 6}, \n                {{\"VariableExpr\", \"=\", \"[\", \"MultExpr\", \"]\", \";\"}, 6},\n                {{\"VariableExpr\", \"=\", \"{\", \"VariableExpr\", \"}\", \";\"}, 6}, \n                {{\"VariableExpr\", \"=\", \"{\", \"MultExpr\", \"}\", \";\"}, 6},\n                {{\"VariableExpr\", \"=\", \"\\\"\", \"VariableExpr\", \"\\\"\", \";\"}, 6}, \n                {{\"VariableExpr\", \"=\", \"\\'\", \"VariableExpr\", \"\\'\", \";\"}, 6},\n                {{\"VariableExpr\", \"=\", \"VariableExpr\", \"=\", \"\u003e\", \"VariableExpr\", \";\"}, 7}, \n                {{\"VariableExpr\", \"=\", \"VariableExpr\", \"=\", \"\u003e\", \"{\", \"VariableExpr\", \"}\", \";\"}, 9},    \n                {{\"VariableExpr\", \"=\", \"(\", \"MultExpr\", \")\", \"=\", \"\u003e\", \"{\", \"MultExpr\", \"}\", \";\"}, 11}\n            }, 13\n    },\n    {\n        \"const\", { \n                {{\"VariableExpr\", \",\", \"VariableExpr\", \";\"}, 4},\n                {{\"VariableExpr\", \"=\", \"VariableExpr\", \";\"}, 4},\n                {{\"VariableExpr\", \"=\", \"[\", \"]\", \";\"}, 5},\n                {{\"VariableExpr\", \"=\", \"{\", \"}\", \";\"}, 5}, \n                {{\"VariableExpr\", \"=\", \"[\", \"VariableExpr\", \"]\", \";\"}, 6}, \n                {{\"VariableExpr\", \"=\", \"[\", \"MultExpr\", \"]\", \";\"}, 6},\n                {{\"VariableExpr\", \"=\", \"{\", \"VariableExpr\", \"}\", \";\"}, 6}, \n                {{\"VariableExpr\", \"=\", \"{\", \"MultExpr\", \"}\", \";\"}, 6},\n                {{\"VariableExpr\", \"=\", \"\\\"\", \"VariableExpr\", \"\\\"\", \";\"}, 6}, \n                {{\"VariableExpr\", \"=\", \"\\'\", \"VariableExpr\", \"\\'\", \";\"}, 6},\n                {{\"VariableExpr\", \"=\", \"VariableExpr\", \"=\", \"\u003e\", \"VariableExpr\", \";\"}, 7}, \n                {{\"VariableExpr\", \"=\", \"VariableExpr\", \"=\", \"\u003e\", \"{\", \"VariableExpr\", \"}\", \";\"}, 9},    \n                {{\"VariableExpr\", \"=\", \"(\", \"MultExpr\", \")\", \"=\", \"\u003e\", \"{\", \"MultExpr\", \"}\", \";\"}, 11}\n            }, 13\n    },\n    {\n        \"import\", { \n                {{\"\\\"\", \"VariableExpr\", \"\\\"\", \";\"}, 4},\n                {{\"\\'\", \"VariableExpr\", \"\\'\", \";\"}, 4},\n                {{\"{\", \"VariableExpr\", \"}\", \";\"}, 4},\n            }, 3\n    }\n};\n```\n5) 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.\n```javascript\nOPBLOCK: import\nOPCODE: \"\nVariableExpr: aa\nOPCODE: \"\nOPCODE: ;\nOPBLOCK: import\nOPCODE: '\nVariableExpr: aa\nOPCODE: '\nOPCODE: ;\nOPBLOCK: let\nVariableExpr: aa\nOPCODE: =\nOPCODE: (\nMultExpr: a \nMultExpr: , \nMultExpr: a \nOPCODE: )\nOPCODE: =\nOPCODE: \u003e\nOPCODE: {\nMultExpr: let \nMultExpr: name \nMultExpr: = \nMultExpr: \" \nMultExpr: Rogerio \nMultExpr: \" \nMultExpr: ; \nMultExpr: console \nMultExpr: . \nMultExpr: log \nMultExpr: ( \nMultExpr: \" \nMultExpr: aaa \nMultExpr: \" \nMultExpr: ) \nMultExpr: ; \nMultExpr: return \nMultExpr: name \nMultExpr: ; \nOPCODE: }\nOPCODE: ;\nOPBLOCK: let\nVariableExpr: aa\nOPCODE: =\nOPCODE: (\nMultExpr: a \nMultExpr: , \nMultExpr: a \nOPCODE: )\nOPCODE: =\nOPCODE: \u003e\nOPCODE: {\nMultExpr: let \nMultExpr: name \nMultExpr: = \nMultExpr: \" \nMultExpr: Rogerio \nMultExpr: \" \nMultExpr: ; \nMultExpr: console \nMultExpr: . \nMultExpr: log \nMultExpr: ( \nMultExpr: \" \nMultExpr: aaa \nMultExpr: \" \nMultExpr: ) \nMultExpr: ; \nMultExpr: return \nMultExpr: name \nMultExpr: ; \nOPCODE: }\nOPCODE: ;\nOPBLOCK: let\nVariableExpr: aa\nOPCODE: =\nOPCODE: (\nMultExpr: a \nMultExpr: , \nMultExpr: a \nOPCODE: )\nOPCODE: =\nOPCODE: \u003e\nOPCODE: {\nMultExpr: let \nMultExpr: name \nMultExpr: = \nMultExpr: \" \nMultExpr: Rogerio \nMultExpr: \" \nMultExpr: ; \nMultExpr: console \nMultExpr: . \nMultExpr: log \nMultExpr: ( \nMultExpr: \" \nMultExpr: aaa \nMultExpr: \" \nMultExpr: ) \nMultExpr: ; \nMultExpr: return \nMultExpr: name \nMultExpr: ; \nOPCODE: }\nOPCODE: ;\nOPBLOCK: let\nVariableExpr: aa\nOPCODE: =\nOPCODE: (\nMultExpr: a \nMultExpr: , \nMultExpr: a \nOPCODE: )\nOPCODE: =\nOPCODE: \u003e\nOPCODE: {\nMultExpr: let \nMultExpr: name \nMultExpr: = \nMultExpr: \" \nMultExpr: Rogerio \nMultExpr: \" \nMultExpr: ; \nMultExpr: console \nMultExpr: . \nMultExpr: log \nMultExpr: ( \nMultExpr: \" \nMultExpr: aaa \nMultExpr: \" \nMultExpr: ) \nMultExpr: ; \nMultExpr: return \nMultExpr: name \nMultExpr: ; \nOPCODE: }\nOPCODE: ;\nOPBLOCK: let\nVariableExpr: aa\nOPCODE: =\nOPCODE: (\nMultExpr: a \nMultExpr: , \nMultExpr: a \nOPCODE: )\nOPCODE: =\nOPCODE: \u003e\nOPCODE: {\nMultExpr: let \nMultExpr: name \nMultExpr: = \nMultExpr: \" \nMultExpr: Rogerio \nMultExpr: \" \nMultExpr: ; \nMultExpr: console \nMultExpr: . \nMultExpr: log \nMultExpr: ( \nMultExpr: \" \nMultExpr: aaa \nMultExpr: \" \nMultExpr: ) \nMultExpr: ; \nMultExpr: return \nMultExpr: name \nMultExpr: ; \nOPCODE: }\nOPCODE: ;\nOPBLOCK: let\nVariableExpr: name\nOPCODE: =\nOPCODE: [\nMultExpr: 1 \nMultExpr: , \nMultExpr: 2 \nOPCODE: ]\nOPCODE: ;\n\n -------\u003e\u003e Tempo: 0.000066 segundos \u003c\u003c-------\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frogerinn%2Flittle_poc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frogerinn%2Flittle_poc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frogerinn%2Flittle_poc/lists"}