abstract-interpretation

6 posts

LLMs Podem Ordenar Seus Avisos de Análise Estática. Eles Simplesmente Não Podem Explicar Por Quê.

Large language models podem ajudar a triar falsos positivos de análise estática, mas não entendem a semântica do programa como faz a interpretação abstrata. Veja como combinar ambos.

Seu analyzer estático acabou de emitir 847 avisos em uma tarde de sexta-feira. Você sabe, estatisticamente, que entre 5% e 15% deles são bugs reais. O resto…

Meta Encontrou 100.000 Bugs em Código de Produção com um analyzer Estático que Nunca Executa o Programa

O Infer da Meta usa interpretação abstrata e bi-abdução para encontrar desreferências nulas, vazamentos de memória e race conditions ao raciocinar sobre a estrutura do código, não sobre sua execução. Veja como funciona e como usá-lo em sua própria codebase.

A Meta enviou mais de 100.000 correções de bugs que foram capturadas por um analyzer estático antes que o código chegasse a um usuário. A ferramenta se chama…

A Análise Estática Não Pode Provar Que Seu Avião Não Vai Cair. Ela Pode Provar Algo Mais Útil.

A interpretação abstrata superaproxima todo estado possível do programa. Se uma divisão por zero é inalcançável na abstração, ela é inalcançável no código real. Veja como funciona e onde deixa de funcionar.

A análise estática não pode provar que um avião não vai cair. Ela pode provar que o loop de controle do altímetro nunca vai dividir por zero, nunca vai acessar…

Como provar que seu código não tem erros de execução (e por que você provavelmente desistirá de tentar)

A interpretação abstrata permite provar que erros de execução são impossíveis antes da execução. Veja como ela funciona na prática, por que é difícil e onde se encaixa na sua cadeia de ferramentas.

Sua suíte de testes passa. Seu verificador de tipos está verde. Você faz o deploy. Duas horas depois, a produção lança um em um caso extremo que ninguém pensou…