Interpretando Efeitos Algébricos por Meio de Mônadas - Joriatti, Karla A. de S.; Torrens, Paulo H.; Ribeiro, Rodrigo Geraldo; Vasconcellos, Cristiano Damiani (Anais do Simpósio Brasileiro de Linguagens de Programação (SBLP); 2025: Anais do XXIX Simpósio Brasileiro de Linguagens de ProgramaçãoDO - 10.5753/sblp.2025.10643, 2025)
Kelsey demonstrou que a forma de atribuição estática única, comumente utilizada como uma linguagem intermediária para a implementação de otimizadores de código em compiladores de linguagens imperativas, pode ser caracterizada como uma linguagem funcional. Isso ocorre porque a mutabilidade local é eliminada por meio da criação de novas variáveis, e o fluxo de controle pode ser traduzido em abstrações lambda. A tradução dessa representação intermediária para a forma A-normal, frequentemente utilizada em compiladores para linguagens funcionais, é relativamente direta. Rigon et al. exploram essa característica, propondo um sistema que infere tipos e efeitos para uma linguagem com mecanismos de controle de fluxo similares aos de linguagens imperativas. Este trabalho expande essa proposta ao introduzir a tradução da representação intermediária na forma A-normal com efeitos algébricos para uma representação que lida com efeitos por meio de mônadas, onde a combinação de vários efeitos em uma mônada é representada por mônadas livres. Como resultado, é demonstrada a geração de código executável em linguagem Haskell, oferecendo indiretamente um meio simples para a definição de uma semântica para a forma de atribuição estática única.