{"id":13502877,"url":"https://github.com/aripiprazole/rinha-de-compiler","last_synced_at":"2025-03-29T12:33:07.717Z","repository":{"id":193084419,"uuid":"688085018","full_name":"aripiprazole/rinha-de-compiler","owner":"aripiprazole","description":"🥖 | Rinha de compiladores (ou interpretadores kkkk","archived":true,"fork":false,"pushed_at":"2023-10-04T18:37:25.000Z","size":1510,"stargazers_count":920,"open_issues_count":1,"forks_count":223,"subscribers_count":18,"default_branch":"main","last_synced_at":"2024-08-14T04:37:34.039Z","etag":null,"topics":["rinha","rinha-de-compilers","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aripiprazole.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-09-06T16:08:00.000Z","updated_at":"2024-08-08T04:14:46.000Z","dependencies_parsed_at":"2024-06-14T08:31:56.970Z","dependency_job_id":null,"html_url":"https://github.com/aripiprazole/rinha-de-compiler","commit_stats":null,"previous_names":["aripiprazole/rinha-de-compiler"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aripiprazole%2Frinha-de-compiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aripiprazole%2Frinha-de-compiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aripiprazole%2Frinha-de-compiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aripiprazole%2Frinha-de-compiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aripiprazole","download_url":"https://codeload.github.com/aripiprazole/rinha-de-compiler/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222495237,"owners_count":16993288,"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","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":["rinha","rinha-de-compilers","rust"],"created_at":"2024-07-31T22:02:28.040Z","updated_at":"2024-10-31T22:30:58.193Z","avatar_url":"https://github.com/aripiprazole.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n![banner]\n\n[\u003cimg src=\"https://img.shields.io/badge/Discord-7289DA?style=for-the-badge\u0026logo=discord\u0026logoColor=white\"\u003e](https://discord.gg/e8EzgPscCw)\n\n\u003c/div\u003e\n\n# Introdução\n\nO ideal da rinha é fazer um interpretador ou compilador que rode em uma maquina com 2 núcleos e 2G de RAM.\n\nO seu interpretador ou compilador deve trabalhar com algo chamado \"árvore sintática abstrata\" que está armazenada no formato JSON. Essa árvore sintática abstrata será gerada por nós usando uma ferramenta específica disponível neste repositório.\n\nSua responsabilidade na tarefa é receber esse JSON que contém a árvore abstrata e, em seguida, interpretar ou compilar o programa de acordo com as informações fornecidas na árvore abstrata.\n\nSimplificando:\n\n1. Nós te damos um JSON com uma árvore dentro\n2. Voce roda o JSON\n3. Voce fica feliz que apareceu o resultado.\n\n## Para executar\n\nCada projeto deve ter seu próprio `Dockerfile` para que consigamos rodar\n\n## Como testar\n\nPara testar você pode usar o arquivo `files/fib.rinha` e gerar com o programa que disponibilizamos\naqui para um JSON ou você pode usar diretamente o JSON que está em `files/fib.json`.\n\nDurante a rinha nós iremos adicionar outros testes :)\n\n## Requisitos\n\nVocê tem que fazer um PR, alterando o arquivo [PARTICIPANTS.md](PARTICIPANTS.md),\ncom uma nova linha e seu repositório. Talvez isso seja mudado depois (fique atento).\n\nSeu repositório terá que ter uma imagem no root do repositório, e buildaremos a imagem\nno rankeamento.\n\n## Especificação\n\nA linguagem terá que rodar com base em algum arquivo, que é o JSON da AST da\nrinha especificado [aqui](https://github.com/aripiprazole/rinha-de-compiler/blob/main/SPECS.md).\n\n1. O arquivo terá que ser lido de `/var/rinha/source.rinha.json`\n2. Poderá também ser lido de `/var/rinha/source.rinha`, se você quiser ler a AST\nna mão.\n\nA linguagem é uma linguagem de programação dinâmica, como JavaScript, Ruby, etc.\n\nO projeto da rinha de compilador, tem um \"interpretador\" do json, que retorna\num AST, e o código terá que ser testado de diferentes formas, como outros\nalgorítimos além de Fibonacci.\n\n## Exemplo\n\nExemplo com fibonacci\n\n```javascript\nlet fib = fn (n) =\u003e {\n  if (n \u003c 2) {\n    n\n  } else {\n    fib(n - 1) + fib(n - 2)\n  }\n};\n\nprint(\"fib: \" + fib(10))\n```\n\n# Competição\n\nO prazo para mandar os PRs, é até o dia 23/09, depois disso serão negados o\nprojeto.\n\nSerá liberado para ajustes até o dia 27/09, você poderá arrumar sua implementação,\ndepois da publicação dos testes.\n\n## Resultados\n\n| Rank | Name | Language | TYpe | Points |\n| :--: | :--: | :--: | :--: | :--: |\n| 1 | Raphael M. R. Victal | Golang | Tree-Walker | 72786 |\n| 2 | Tacio | Golang | Tree-Walker | 72582 |\n| 3 | cleissonbarbosa | Haskell | Tree-Walker | 72458 |\n| 4 | Danfs | TypeScript | Tree-Walker | 70096 |\n| 5 | Valmor Flores | Flutter |  | 69584 |\n| 6 | Victor Augusto | TypeScript | Tree-Walker | 69273 |\n| 7 | fabiosvm | C | Bytecode Interpreter | 68737 |\n| 8 | coproduto | ⚡Zig | Tree-Walker | 68647 |\n| 9 | Adriano dos Santos Fernandes | C++ | Tree-Walker | 68309 |\n| 10 | Ítalo Paulino (irbp) | Dart 🎯 | Tree-Walker | 67919 |\n\n## Recursos\n\nAlguns recursos úteis para aprender como fazer seu próprio interpretador ou compilador são:\n\n- https://www.youtube.com/watch?v=t77ThZNCJGY\n- https://www.youtube.com/watch?v=LCslqgM48D4\n- https://ruslanspivak.com/lsbasi-part1/\n- https://www.youtube.com/playlist?list=PLjcmNukBom6--0we1zrpoUE2GuRD-Me6W\n- https://www.plai.org/\n\nFique ligado que alguns vídeos e posts úteis chegarão em breve.\n\n[banner]: ./img/banner.png\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faripiprazole%2Frinha-de-compiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faripiprazole%2Frinha-de-compiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faripiprazole%2Frinha-de-compiler/lists"}