markdown
JimiBasic é uma linguagem de programação moderna que une a simplicidade e legibilidade do clássico BASIC com o poder de desenvolvimento para a era dos agentes de IA. Inspirada pelo espírito criativo e inovador de Jimi Hendrix, a linguagem permite que você crie desde aplicações console rápidas até sistemas complexos com servidores web, integração com LLMs e orquestração de agentes.
- Sintaxe Simples e Legível: Fácil de aprender, com comandos em português e suporte a tipos modernos.
- Compilação para Código Nativo: Gera executáveis
.exepara Windows (PE COFF) com alta performance via LLVM. - Multiplataforma: O compilador roda no Windows, com suporte planejado para Linux e macOS.
- Programação Orientada a Agentes: Defina agentes com ferramentas, workflows e colaboração (inspirado no ADK da Google).
- Integração com IA: Suporte nativo para DeepSeek, Gemini e OpenAI (chat, streaming, function calling).
- Servidor Web Embutido: Crie APIs REST e sirva páginas HTML/JS com facilidade.
- Gráficos 2D: Suporte a gráficos via SDL2 (modo texto e modo gráfico).
- Moderno e Extensível: JSON, HTTP, SQL, WebSockets, Threads e muito mais.
' Um simples servidor web com um agente de IA
AGENT MeuAssistente
MODEL "deepseek-chat"
INSTRUCTION "Você é um assistente útil."
TOOL CalcularMedia
END AGENT
app = NEW HTTPSERVER()
app.POST "/api/chat", SUB (req, res)
DIM agente AS AGENT
agente = MeuAssistente()
res.JSON {"resposta": agente.CHAT(req.BODY.mensagem)}
END SUB
app.LISTEN 3000
PRINT "Servidor rodando em http://localhost:3000"
📦 Instalação
Windows
Baixe o compilador mais recente.
Adicione o diretório bin ao seu PATH.
Compile seu primeiro programa:
bash
JimiBasic meu_programa.bas -o meu_programa.exe
Compilação a partir do código-fonte
bash
git clone https://github.com/seu-usuario/JimiBasic.git
cd JimiBasic
nmake -f Makefile.win
📚 Documentação
Acesse a documentação completa para guias, referência da API e exemplos.
Guia de Início Rápido
Guia da Linguagem
Referência da API
🤝 Como Contribuir
Adoramos contribuições! Leia nosso Guia de Contribuição para saber como ajudar.
Faça um fork do projeto.
Crie sua branch de feature (git checkout -b feature/nova-funcionalidade).
Commit suas mudanças (git commit -m 'Adiciona nova funcionalidade').
Push para a branch (git push origin feature/nova-funcionalidade).
Abra um Pull Request.
🧪 Status do Projeto
Área Status
Lexer/Parser ✅ Concluído
Geração de Código (LLVM) ✅ Concluído (básico)
Runtime Básico (console) ✅ Concluído
JSON/HTTP/SQL ✅ Concluído
Agentes (AGENT, TOOL) 🚧 Em desenvolvimento
Servidor Web (HTTPSERVER) ✅ Concluído
Gráficos (SDL2) ✅ Concluído (básico)
Threads/Paralelismo 🚧 Em desenvolvimento
Documentação 🚧 Em andamento
📜 Licença
Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para mais detalhes.
🙏 Agradecimentos
LLVM Project - Pela infraestrutura de compilação.
Google ADK - Pela inspiração na arquitetura de agentes.
Comunidade BASIC - Por manter viva a paixão pela simplicidade.
text
---
## 📄 CONTRIBUTING.md
```markdown
# Guia de Contribuição para o JimiBasic
Obrigado por considerar contribuir para o JimiBasic! Este documento descreve as diretrizes para contribuir com o projeto.
## 📋 Código de Conduta
Ao participar deste projeto, você concorda em manter um ambiente respeitoso e acolhedor para todos.
## 🐛 Reportando Bugs
Use o [Issue Tracker](https://github.com/seu-usuario/JimiBasic/issues) para reportar bugs.
Inclua o máximo de informações possível:
- Versão do JimiBasic.
- Sistema operacional e versão.
- Código-fonte que reproduz o problema.
- Mensagem de erro completa (se houver).
## 💡 Sugerindo Melhorias
Abra uma issue com a tag `enhancement`. Descreva a melhoria e o benefício esperado.
## 🚀 Desenvolvendo
### Pré-requisitos
- Visual Studio 2022 (ou superior) com C++ tools.
- LLVM 18+ (bibliotecas e headers).
- CMake 3.20+ (opcional).
### Configurando o Ambiente
```bash
git clone https://github.com/seu-usuario/JimiBasic.git
cd JimiBasic
Compilando
bash
# Usando o Visual Studio
devenv JimiBasic.sln /Build Release
# Usando CMake (se disponível)
mkdir build && cd build
cmake .. -DLLVM_DIR=C:/caminho/para/llvm
cmake --build . --config Release
Testando
bash
# Compilar os testes
JimiBasic tests\test_lexer.bas -o test_lexer.exe
# Executar os testes
.\test_lexer.exe
🎯 Padrões de Código
C++: Siga o estilo do código existente (indentação de 4 espaços, nomes em CamelCase).
BASIC: Os exemplos devem ser claros e bem comentados.
Commit: Mensagens em português, no formato tipo: descrição curta (ex.: feat: adiciona comando MKDIR).
📝 Processo de Pull Request
Certifique-se de que seu código compila e os testes passam.
Atualize a documentação se necessário.
Envie um Pull Request para a branch main.
Aguarde a revisão.
Obrigado por ajudar a tornar o JimiBasic melhor! 🎸
text
---
## 📄 ROADMAP.md
```markdown
# Roteiro de Desenvolvimento do JimiBasic
Este documento descreve os planos futuros para o JimiBasic.
## 🎯 Versão 1.0 (Lançamento Inicial)
- [x] Compilador completo (Lexer, Parser, CodeGen com LLVM).
- [x] Runtime básico (console, arquivos, JSON).
- [x] Servidor HTTP e cliente HTTP.
- [x] Cliente LLM (DeepSeek, Gemini, OpenAI).
- [x] Suporte a SQL (SQLite).
- [x] Gráficos 2D com SDL2.
- [x] Comandos de sistema (`SHELL`, `MKDIR`, `RMDIR`, `KILL`, `RENAME`).
## 🚀 Versão 1.1 (Agentes e IA)
- [ ] Suporte completo a agentes (`AGENT`, `TOOL`, `WORKFLOW`).
- [ ] Modos de colaboração (`chat`, `task`, `single_turn`).
- [ ] Execução paralela (`PARALLEL`).
- [ ] Human-in-the-Loop (`CONFIRM`).
- [ ] Sessão persistente (`SESSION`).
## 🧩 Versão 1.2 (Paralelismo e Threads)
- [ ] Suporte a threads (`THREAD.START`, `THREAD.WAIT`).
- [ ] Mutexes e sincronização.
- [ ] Execução assíncrona (`AWAIT`, `PROMISE`).
- [ ] WebSockets (`WEBSOCKETSERVER`, `WEBSOCKETCLIENT`).
## 🖥️ Versão 2.0 (Interface Visual)
- [ ] Criação de janelas (TUI e GUI nativa).
- [ ] Sistema de eventos (clique, teclado, timer).
- [ ] Formulários visuais (`.frm`).
- [ ] Controles nativos (botões, caixas de texto, listas).
## 🔧 Melhorias Futuras
- [ ] Suporte a Linux/macOS.
- [ ] Depurador integrado.
- [ ] Geração de documentação automática.
- [ ] Gerenciador de pacotes (`jimi get`).
- [ ] Compilação para WebAssembly (WASM).
---
Acompanhe o progresso e contribua! 🎸