Журнал "Программная инженерия"
Теоретический и прикладной научно-технический журнал
ISSN 2220-3397
Номер 10 2025 год
Предложена комплексная система статического анализа, отвечающая на современные вызовы роста сложности программ, поддержки многих языков программирования, а также использования в анализе растущей метаинформации об исходном коде программы. Система включает как классические методы — поиск по синтаксическому дереву, анализ потоков данных, символьное выполнение, — так и новые методы на основе машинного обучения, методы верификации предупреждений и методы на основе генеративных больших языковых моделей. Описаны устройство такой системы, а также ее реализация в индустриальном статическом анализаторе SharpChecker вместе с набором актуальных методов анализа. Система учитывает основные сценарии использования методов, предлагает эффективную схему взаимодействия и обмена информацией между отдельными компонентами, а также включает в методы анализа генерацию и использование информации других этапов. Приведены обобщенные результаты тестирования производительности, точности и полноты системы на наборе проектов с открытым кодом из более 5 млн строк.