Применение искусственного интеллекта в задачах статического анализа кода на примере анализатора misra-sa

Konstantin Kostiukhin, Mikhail Aristov
15m
Классические инструменты статического анализа исходного кода на языке Си, ориентированные на соблюдение стандарта MISRA C, страдают от высокой доли ложных срабатываний, принципиальной неразрешимости ряда директив и отсутствия семантического понимания предметной области. В работе предлагается архитектура, в которой большая языковая модель (LLM) интегрируется в конвейер анализа в трех ролях: верификатор достижимости ошибок, генератор подсказок и эксперт глубокого разбора полуавтоматических директив. На базе Clang LibTooling реализован анализатор misra-sa, объединяющий 895 детерминированных проверок. LLM-модуль обрабатывает находки с помощью двухраундового верификатора и классифицирует их по шкале достоверности.