9 pontos por skuldnorniern 2025-10-13 | 2 comentários | Compartilhar no WhatsApp

Post no blog sobre o lançamento do Lamina

Lamina é um projeto de backend de compilador que recebe código em Intermediate Representation (código IR) como entrada e gera código de máquina/binários.
Ele foi iniciado com base nos meus estudos e projetos de linguagens/compiladores dos últimos 4 a 5 anos, e espero que possa servir como uma referência simples e intuitiva para quem tem interesse em compiladores.

Plataformas atualmente suportadas

  • macOS (aarch64)
  • Linux (x86_64)
  • WebAssembly (wasm32/64)

Plataformas com suporte planejado

  • Windows (x86_64)
  • macOS (Intel)
  • Linux (aarch64)
  • Risc-V

No caso de Windows aarch64, como o autor não tem o equipamento, a prioridade é baixa e por isso foi omitido por enquanto.

Estado atual

Atualmente não há passes de otimização do compilador, então o desempenho fica em um nível ligeiramente mais lento que C#.
Na próxima atualização, está prevista a implementação da camada Machine IR e, junto com ela, a introdução de passes de otimização.

Além disso, antes do lançamento 0.1, a maior parte do conteúdo gerado com IA nas partes de test code e codegen será removida e reescrita.

Exemplo de frontend de compilador

Brainfuck-Lamina Repo - um compilador simples de Brainfuck

Funcionalidades planejadas para o desenvolvimento futuro

  • Suporte à geração de código para GPU (para uso posterior como backend de uma biblioteca de ML implementada do zero)
  • Suporte a compilação JIT
  • Fornecimento de um conjunto de ferramentas, como depurador
  • Fornecimento de assembler e linker implementados do zero (mantendo o suporte aos utilitários existentes)

2 comentários

 
cgl00 2025-10-13

Impressionante mesmo, muito bom

 
skuldnorniern 2025-10-14

Ainda é um projeto bem incipiente,
muito obrigado por terem visto com bons olhos!
Vou continuar melhorando o projeto; espero que ele possa se tornar um bom material para quem está estudando compiladores.