image

Accede a bootcamps ilimitados y a más de 650 cursos para siempre

70
%OFF
Article image
Saulo Maciel
Saulo Maciel31/03/2026 00:04
Compartir
CI&T - Do Prompt ao AgenteRecomendado para tiCI&T - Do Prompt ao Agente

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

    image

    🧠 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:

    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.

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

    Compartir
    Recomendado para ti
    Globant  - Java & Spring Boot AI Developer
    Accenture - Python para Análise e Automação de Dados
    Lupo - Primeiros Passos com Inteligência Artificial
    Comentarios (0)
    Recomendado para tiCI&T - Do Prompt ao Agente