abstract-interpretation

6 статей

Назад ко всем статьям

LLM могут ранжировать предупреждения статического анализа. Они просто не могут объяснить почему.

Большие языковые модели могут помочь в триаже ложноположительных срабатываний статического анализа, но они не понимают семантику программ так, как это делает abstract interpretation. Вот как совместить оба подхода.

Meta нашла 100 000 багов в production-коде статическим анализатором, который никогда не запускает программу

Infer от Meta использует abstract interpretation и bi-abduction для поиска null dereference, утечек памяти и race conditions, рассуждая о структуре кода, а не о его выполнении. Вот как это работает и как использовать в своей codebase.

Статический анализ не может доказать, что ваш самолёт не разобьётся. Но он может доказать кое-что более полезное.

Абстрактная интерпретация аппроксимирует сверху каждое возможное состояние программы. Если деление на ноль недостижимо в абстракции, оно недостижимо и в реальном коде. Вот как это работает и где даёт сбои.

Как доказать, что в вашем коде нет ошибок времени выполнения (и почему вы, скорее всего, бросите эту затею)

Абстрактная интерпретация позволяет доказать невозможность ошибок времени выполнения ещё до запуска программы. Вот как это работает на самом деле, почему это сложно и где это применяется в вашем инструментарии.