BLI - Brainfuck IDE
Já imaginou programar em uma linguagem que usa apenas 8 caracteres? Criei uma IDE completa para Brainfuck que torna essa experiência surpreendentemente agradável! Com uma interface intuitiva e ferramentas poderosas, você pode escrever, executar e depurar programas nesta fascinante linguagem minimalista diretamente no seu navegador.
Por que criei este projeto?
A ideia surgiu quando eu estava me aprofundando no mundo dos compiladores e interpretadores. Em vez de apenas ler sobre teoria, decidi colocar a mão na massa com um projeto prático. Escolhi Brainfuck porque, apesar da aparente simplicidade (ou por causa dela!), ela apresenta desafios fascinantes de implementação e otimização. É como um quebra-cabeça de programação que nos ensina muito sobre como as linguagens funcionam por baixo dos panos.
O que você pode fazer com ela
- Programar em alta velocidade: Graças ao WebAssembly, a execução é surpreendentemente rápida, mesmo no navegador
- Trabalhar offline: Há um fallback em JavaScript quando o WebAssembly não está disponível
- Acelerar suas execuções: Implementei um sistema de cache de bytecode que compila previamente seu código
- Programar confortavelmente: O editor tem realce de sintaxe, numeração de linhas e outras facilidades que você esperaria de uma IDE moderna
- Aprender com exemplos: Inclui programas clássicos como Fibonacci, Mandelbrot e um sofisticado Hello World para você explorar
- Escolher seu estilo: Execução interativa ou automatizada, dependendo da sua necessidade
- Monitorar em tempo real: Acompanhe o desempenho e status da execução enquanto seu código roda
Como funciona por dentro
Dividi o projeto em partes bem definidas:
- Frontend amigável: Interface construída com HTML/CSS/JS que torna a experiência agradável mesmo para quem está começando
- Motor potente em Go: O interpretador é implementado em Golang e compilado para WebAssembly, garantindo desempenho excepcional
- Fácil de rodar: Tudo empacotado em Docker para você não precisar se preocupar com configurações complexas
Tecnologias que escolhi
- Go 1.19.13: Linguagem perfeita para este tipo de projeto pela combinação de desempenho e legibilidade
- Docker e Docker Compose: Para que você possa experimentar a IDE com apenas um comando
- WebAssembly e GopherJS: Trazendo a velocidade de código compilado para o ambiente do navegador
Como está organizado
bli/
├── bli.go
├── docker-compose.yml
├── Dockerfile
├── Makefile
├── mise.toml
├── go.mod
├── go.sum
├── LICENSE
└── index.html
Quer experimentar?
Acesso web
Acesse o serviço web hospedado em:
Compilação local
Um simples comando e você tem tudo pronto:
make build
Versão para web
Para compilar a versão WebAssembly:
make web
Usando Docker (o jeito mais fácil)
Execute com apenas um comando:
docker-compose up -d
E visite:
http://localhost:9093
Minha motivação pessoal
Este projeto nasceu da minha curiosidade sobre como as linguagens de programação funcionam internamente. Escolhi Brainfuck como objeto de estudo por ser um excelente modelo didático - com apenas 8 comandos, ela nos força a entender profundamente os conceitos fundamentais de interpretação e compilação. Foi uma jornada de aprendizado incrível que me ensinou muito sobre otimização de código e os bastidores da computação.