🚀 Criando minha própria linguagem de programação: o nascimento da Kaa
Desde muito cedo, eu tinha uma ideia fixa: queria construir minha própria “base computacional”.
Não era só programar. Era entender o que acontece por baixo. Era chegar perto do nível dos sistemas que eu via nos filmes — como o batcomputador do Batman ou as tecnologias do Homem de Ferro.
Com o tempo, isso deixou de ser só imaginação.
🧠 O ponto de virada
Minha jornada começou com o clássico Crafting Interpreters, do Robert Nystrom.
Esse livro é, sem exagero, um divisor de águas para quem quer entender como linguagens funcionam de verdade. Ele mostra como sair do código “de aplicação” e entrar no nível de construção de linguagem.
Mas eu queria acelerar.
Ao ingressar no Bacharelado em Inteligência Artificial (UFMS), comecei a estudar agentes e fundamentos da área antes das aulas começarem — e um detalhe curioso me marcou:
Muitos conceitos usados hoje em linguagens de programação têm raízes na própria IA. E o Nystrom brinca com isso.
Isso mudou minha forma de enxergar o problema.
⚙️ Do estudo à prática: criando o interpretador
A partir daí, comecei a desenvolver meu próprio interpretador.
Usei como base:
- Estrutura do Nystrom (Java)
- Implementação adaptada para Python
- Um guia estruturado que utilizei como apoio para acelerar o desenvolvimento
Durante dois dias intensos, foquei totalmente em:
- Entender o fluxo completo de uma linguagem
- Construir cada etapa do zero
- Validar cada decisão com testes simples
E foi assim que nasceu a Kaa.
🐍 Kaa v2.0 — evolução da linguagem
A versão atual (v2.0) já representa um salto importante em relação à versão anterior.
Segundo a documentação do projeto , a Kaa evoluiu de uma linguagem dinâmica para um modelo com tipagem leve e validação em tempo de execução.
🔥 Principais funcionalidades
1. Sistema de tipos leve
Agora é possível declarar variáveis com tipo:
var -i x = 10;
var -f preco = 4.99;
var -s nome = "Saulo";
-i→ inteiro-f→ float-s→ string
Isso evita erros silenciosos e melhora a previsibilidade do código.
2. Coerção automática de tipos
Um dos pontos mais interessantes do projeto:
A linguagem tenta converter valores automaticamente — mas falha de forma explícita quando não é possível.
Exemplo:
var -i x = 3.7; // erro
Isso garante segurança sem perder flexibilidade.
3. Input tipado
Agora a linguagem permite entrada de dados com validação:
var -i idade;
input "Digite sua idade: " >> idade;
Se o usuário digitar algo inválido, o interpretador bloqueia com erro.
4. Print com múltiplas expressões
Sem necessidade de concatenação manual:
print "Nome: ", nome, " Idade: ", idade;
Internamente, tudo é convertido e unido automaticamente.
🔄 Como a Kaa funciona por dentro
A linguagem segue o pipeline clássico:
- Código fonte (.kaa)
- Scanner → gera tokens
- Parser → constrói AST
- Interpretador → executa
Um detalhe importante: a coerção de tipos acontece em três momentos :
- Declaração de variável
- Atribuição
- Entrada via
input
Isso garante consistência durante toda a execução.
💡 O que aprendi construindo isso
Criar uma linguagem, mesmo simples, muda completamente sua visão como desenvolvedor.
Você passa a entender:
- Como variáveis realmente funcionam
- O que é um parser de verdade
- Como erros são tratados internamente
- Como decisões de design impactam o uso da linguagem
E principalmente:
Você deixa de ser apenas usuário de tecnologia — e passa a construir a base dela.
🚧 Próximos passos
A base está pronta, mas ainda há muito espaço para evolução:
- Verificação de tipos em tempo de compilação
- Tipagem em parâmetros de função
- Geração de bytecode
- Máquina virtual (VM)
- Otimizações de execução
🎯 Conclusão
A Kaa começou como um experimento.
Hoje, já é uma linguagem funcional, com interpretador próprio, sistema de tipos e suporte a entrada e saída estruturada.
Ainda é só o começo — mas é um começo real.
💼 Sobre mim
Sou estudante de Inteligência Artificial e desenvolvedor em formação, com foco em:
- Backend
- Linguagens de programação
- Sistemas e arquitetura
Estou aberto a conexões, feedbacks e oportunidades.




