Журнал "Программная инженерия"
Теоретический и прикладной научно-технический журнал
ISSN 2220-3397

Номер 10 2025 год

DOI: 10.17587/prin.16.517-531
УДК: 004.4'2, 004.8
Комплексный статический анализ исходного кода для поиска ошибок
В. Н. Игнатьев, канд. физ.-мат. наук, ст. науч. сотр.1, доц.2, valery.ignatyev@ispras.ru
1 ФГБУН Институт системного программирования им. В. П. Иванникова Российской академии наук (ИСП РАН), Москва,
2 Факультет ВМК МГУ им. М. В. Ломоносова

Предложена комплексная система статического анализа, отвечающая на современные вызовы роста сложности программ, поддержки многих языков программирования, а также использования в анализе растущей метаинформации об исходном коде программы. Система включает как классические методы — поиск по синтаксическому дереву, анализ потоков данных, символьное выполнение, — так и новые методы на основе машинного обучения, методы верификации предупреждений и методы на основе генеративных больших языковых моделей. Описаны устройство такой системы, а также ее реализация в индустриальном статическом анализаторе SharpChecker вместе с набором актуальных методов анализа. Система учитывает основные сценарии использования методов, предлагает эффективную схему взаимодействия и обмена информацией между отдельными компонентами, а также включает в методы анализа генерацию и использование информации других этапов. Приведены обобщенные результаты тестирования производительности, точности и полноты системы на наборе проектов с открытым кодом из более 5 млн строк.

Ключевые слова: статический анализ исходного кода, машинное обучение в анализе кода, поиск ошибок, Svace, SharpChecker
Стр. 517—531
Ссылка для цитирования:
Игнатьев В. Н. Комплексный статический анализ исходного кода для поиска ошибок // Программная инженерия. 2025. Том 16, № 10. С. 517—531. DOI: 10.17587/prin.16.517-531.