Идеи и инсайты · Страница 3

Исследуем AI-first разработку, кодовые ограждения и архитектуру одноразовости.

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

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

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

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

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

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

Ваша зависимость на C может уронить весь процесс. WebAssembly может это остановить.

Контейнеры — это overkill для изоляции одной C-библиотеки. Скомпилируйте её в WebAssembly и запустите внутри WASI-sandbox для memory safety, capability-based доступа к файловой системе и crash containment без Docker.

Ваш телефон уже оснащён аппаратным обеспечением, которое обнаруживает повреждение памяти

ARM Memory Tagging Extension и GWP-ASan делают возможным обнаружение проблем безопасности памяти в продакшене на современных мобильных устройствах. Вот как они работают и каковы компромиссы.

Buffer Overflows Продолжают Происходить, Потому Что Мы Исправляем Их в Software

CHERI — это hardware-расширение, которое превращает каждый pointer в bounded capability. Вот как оно останавливает buffer overflows на уровне CPU, что это стоит и как попробовать его на реальном оборудовании.

LLM не могут доказать корректность вашего кода, но они могут написать шаблонный код, который это делает

Верификация по методологии Cleanroom требует генерации и разрядки обязательств доказательства. Вот как LLM автоматизируют аннотации и генерацию VC, чтобы вы могли сосредоточиться на самых сложных доказательствах.

Cleanroom Даёт 0,1 Дефектов на KLOC. Полный Ритуал Для Этого Не Нужен.

Cleanroom software engineering снижает плотность дефектов в 100 раз, но полное внедрение требует отдельных команд тестирования и формальных доказательств. Вот прагматичное подмножество, которое улавливает большую часть выгоды без overhead.