🚀 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.

:brain: 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.

:gear: 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.

:snake: 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.

:fire: 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.

:counterclockwise_arrows_button: Como a Kaa funciona por dentro

A linguagem segue o pipeline clássico:

  1. Código fonte (.kaa)
  2. Scanner → gera tokens
  3. Parser → constrói AST
  4. 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.

:light_bulb: 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.

:construction: 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
:bullseye: 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.

:briefcase: 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.

3 curtidas

faltou o significado da sigla KAA

3 curtidas

Acho que é que nem ‘C’, onde não tem um significado específico ou a gente só não sabe, mas não se importa tanto

1 curtida

Kaa vem de Nheengatu.

Eu sou linguista, e Nheengatu seria a língua do Brasil se não tivesse a proibição do marquês de Pombal.

Nheengatu tem a base Tupi, tratamento morfológico europeu devido aos padres jesuítas e incremento sintáxico de idiomas afros.

Significa algo como “Selva/Flora/In Natura/Bosque”

Kaapura significa selvagem.
Kaareté significa floresta.

1 curtida

agradeco a resposta,
entao tem um significado na sigla KAA
“Selva/Flora/In Natura/Bosque”

2 curtidas

Sim, escolhi algo que remetesse a ideia original: selvagem.

Uma língua selvagem feita para meus robôs. Então, como sou brasileiro, pensei em dar o nome em uma língua brasileira.

1 curtida

para bem pelo esforço. muito sucesso.