RUS  ENG
Полная версия
ЖУРНАЛЫ // Труды института системного программирования РАН // Архив

Труды ИСП РАН, 2023, том 35, выпуск 5, страницы 169–192 (Mi tisp822)

Проверка программ на соответствие стандарту MISRA C с использованием инфраструктуры Clang

Р. А. Бучацкийa, Я. А. Чуркинba, К. А. Чибисовa, М. В. Пантилимоновa, Е. В. Долгодворовac, А. В. Вязовцевac, А. Г. Волоховa, В. В. Труновac, Г. О. Миракянd, К. Н. Китаевac, А. А. Белеванцевba

a Институт системного программирования им. В.П. Иванникова РАН
b Московский государственный университет имени М. В. Ломоносова
c Московский физико-технический институт
d Российско-Армянский университет

Аннотация: MISRA C – это сборник правил и рекомендаций по программированию на языке C, который является фактическим стандартом в отраслях, где безопасность играет ключевую роль. Стандарт разработан консорциумом MISRA (Motor Industry Software Reliability Association) и включает в себя набор рекомендаций, которые позволяют использовать язык C для разработки безопасного, надежного и переносимого программного обеспечения. MISRA широко применяется во многих отраслях с высокими требованиями к надежности, включая аэрокосмическую, оборонную, автомобильную и медицинскую.
Мы разработали статические детекторы для проверки кода на соответствие рекомендациям стандарта безопасного кодирования MISRA C 2012. Средство проверки кода основано на компиляторной инфраструктуре LLVM/clang. В данной статье описываются стратегии, лежащие в основе проектирования и реализации детекторов. На тестовых примерах MISRA С предложенные детекторы с высокой точностью определяют соответствие или нарушение рекомендациям. Также детекторы показывают большее покрытие и лучшую скорость работы, чем Cppcheck, популярный статический анализатор с открытым исходным кодом.

Ключевые слова: MISRA, статический анализ, символьное выполнение, LLVM, Clang, Clang-Tidy, статический анализатор Clang

DOI: 10.15514/ISPRAS-2023-35(5)-12



© МИАН, 2024