Pitch: Construindo uma linguagem de programação chamada Su
Nos últimos anos venho trabalhando em um projeto pessoal que começou como estudo sobre interpretadores e foi evoluindo para uma linguagem de programação própria: Su.
Tudo nasceu por curiosidade sobre como interpretadores funcionam por dentro — análise léxica, parsing, AST, resolução de escopo e execução. Com o tempo, comecei a incorporar ideias próprias sobre sintaxe e legibilidade. O objetivo de longo prazo é caminhar em direção ao paradigma funcional, mas atualmente Su é uma linguagem imperativa.
A linguagem já suporta:
- Variáveis
- Inteiros e ponto flutuante (com suporte a precisão arbitrária via BigInt/BigFloat)
- Strings com interpolação (
#{variavel}e#{expressão}) - Booleanos e nil
- Operadores aritméticos, lógicos e de atribuição composta (
+=,-=,++,--) - if / else if / else
- while
- for clássico e for com range (
for(i to 10)) - Escopo por blocos
- typeOf nativo
O próximo passo é implementar funções de primeira classe, o que abrirá caminho para closures, recursão e começar a pensar em paradigma funcional de verdade.
O nome Su vem de Sujeito, inspirado nas reflexões sobre trabalho e produção presentes em O Capital de Marx. A ideia é que o programador não seja apenas operador de uma ferramenta, mas sujeito ativo no processo de criação.
Aceito críticas sobre arquitetura do interpretador, organização do código e direção do projeto.
sintaxe:
./su file.su
nome = "Karl";
idade = 42;
if(idade > 18){
proclaim("#{nome} é adulto");
}