← Últimos artigos
💬 NLP

Beyond BLEU: A Semantic Evaluation Method for Code Translation

Este artigo propõe uma nova metodologia de avaliação semântica para tradução de código que utiliza testes de compilador para medir a correção de execução, demonstrando que descompiladores baseados em LLM superam significativamente abordagens heurísticas, enquanto métricas sintáticas tradicionais como BLEU falham em correlacionar-se com a precisão funcional.

Autores originais: Julius Näumann, Sven Keidel, Amir Molzam Sharifloo, Mira Mezini

Publicado 2026-05-08
📖 4 min de leitura☕ Leitura rápida

Autores originais: Julius Näumann, Sven Keidel, Amir Molzam Sharifloo, Mira Mezini

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine que você está tentando traduzir uma receita de um idioma estrangeiro para o inglês.

O Jeito Antigo: Contando Palavras
Tradicionalmente, quando computadores verificam se uma tradução é boa, eles usam um método chamado BLEU. Pense nisso como um professor corrigindo uma tradução apenas contando quantas palavras correspondem ao original, ignorando o significado.

  • O Problema: Se a receita original diz "Adicione uma pitada de sal" e a tradução diz "Adicione um pouquinho de sal", o computador acha que são muito diferentes porque as palavras não correspondem perfeitamente.
  • O Problema Maior: Se a original diz "Asse a 350°F" e a tradução diz acidentalmente "Asse a 500°F", o computador ainda pode dar uma pontuação alta porque as palavras parecem semelhantes. O resultado? Você obtém um bolo queimado, mas o computador diz: "Ótimo trabalho!"

Os autores deste artigo argumentam que, para código de computador, esse método de "contagem de palavras" é inútil. Dois programas podem parecer completamente diferentes na página, mas fazer exatamente a mesma coisa (como duas maneiras diferentes de amarrar um cadarço de sapato). Por outro lado, dois programas podem parecer quase idênticos, mas fazer coisas completamente diferentes (como uma receita que diz "adicione açúcar" versus "adicione sal").

O Jeito Novo: O Teste de Paladar
Em vez de apenas olhar para as palavras, os autores propõem uma abordagem de "Teste de Paladar". Eles querem ver se o código traduzido realmente funciona da mesma maneira que o original.

Veja como seu novo método funciona, usando uma analogia criativa:

  1. O Gerador (O Chef): Eles usam uma ferramenta chamada Csmith para cozinhar automaticamente milhares de programas de computador simples e aleatórios. É como um chef robô fazendo milhares de pratos pequenos e aleatórios.
  2. O Prato de Referência: Eles executam esses programas originais e medem um "perfil de sabor" específico (uma soma de verificação matemática) do resultado. Esta é a sua linha de base.
  3. A Tradução: Eles enviam o código original para um tradutor (uma IA semelhante a um humano ou uma ferramenta tradicional baseada em regras) para obter o código "traduzido".
  4. O Re-cozimento: Eles pegam esse código traduzido, cozinham-no novamente e medem o novo "perfil de sabor".
  5. O Veredito: Se os perfis de sabor corresponderem perfeitamente, a tradução é Semanticamente Correta. Isso significa que o código faz exatamente o mesmo trabalho, mesmo que as palavras pareçam diferentes. Se os sabores não corresponderem, a tradução falhou, mesmo que as palavras parecessem semelhantes.

O Que Eles Encontraram
Eles testaram esse método em dois tipos de tradutores:

  • A Velha Guarda (Heurística): São ferramentas tradicionais que seguem regras estritas.
  • A Nova IA (LLM): Um modelo de linguagem grande treinado para traduzir código.

Os Resultados:

  • A IA Vence: O tradutor de IA foi muito melhor em manter o "sabor" (a função real) do código intacto, comparado às ferramentas antigas baseadas em regras.
  • A Métrica Antiga Está Quebrada: Quando olharam para as pontuações de "contagem de palavras" (BLEU), descobriram zero conexão com se o código realmente funcionava.
    • Às vezes, a IA obtinha uma pontuação baixa de correspondência de palavras, mas o código funcionava perfeitamente.
    • Às vezes, a IA obtinha uma pontuação alta de correspondência de palavras, mas o código estava quebrado.

A Conclusão
O artigo conclui que precisamos parar de avaliar traduções de código pelo quanto elas parecem com o original. Em vez disso, devemos avaliá-las pelo quanto elas agem como o original. O jeito antigo de contar palavras é como julgar um carro pelo quanto ele se parece com um Ferrari, enquanto o jeito novo é realmente dirigí-lo para ver se ele funciona. Os autores mostram que o "teste de direção" revela que a IA está ficando muito melhor nessa tarefa, enquanto o teste de "semelhança visual" está nos enganando.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →