Expansão de Suporte a Novas Linguagens de Programação na Ferramenta BenchGen

Matheus Marchesotti Fura Ferraz

A validação de compiladores e ferramentas de análise estática exige um vasto conjunto de programas de teste diversificados. A ferramenta BenchGen, baseada em L-Systems, sintetiza tais programas de forma determinística e escalável. Este trabalho, desenvolvido no contexto da disciplina Projeto Orientado em Computação II, deu continuidade à expansão do BenchGen, implementando suporte para quatro novas linguagens: D, Nim, Ada e Vale. O processo envolveu a adaptação da gramática gerativa e a implementação de módulos de geração de código específicos, com ênfase nos distintos modelos de gerenciamento de memória de cada linguagem. Os resultados demonstram que a ferramenta gera programas sintaticamente corretos, compiláveis e executáveis para D, Nim e Ada, com desempenho competitivo frente às referências em C e C++ — destacando-se Ada como a implementação mais eficiente do conjunto avaliado quando compilada sem as verificações de segurança em tempo de execução. Mediu-se cada linguagem com suas melhores opções de otimização (preferindo back-ends LLVM, como em C/C++ e no ldc2 para D). Para Vale, discute-se a ausência de ownership compartilhado como um obstáculo fundamental à reutilização de estruturas, motivando uma estratégia alternativa baseada em um pool de reciclagem que, ainda assim, não atinge desempenho comparável.


2026/2 - POC2

Orientador: Fernando Magno Quintão Pereira

Palavras-chave: Compiladores, Fuzzing, Geração de Código, BenchGen, D, Nim, Ada, Vale

PDF Disponível