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

Труды ИСП РАН, 2025, том 37, выпуск 6(2), страницы 37–52 (Mi tisp1072)

Статический анализ языка Visual Basic .NET

В. С. Карцевab, В. Н. Игнатьевac

a Институт системного программирования им. В.П. Иванникова РАН
b Физтех-школа радиотехники и компьютерных технологий МФТИ
c Московский государственный университет имени М. В. Ломоносова, факультет вычислительной математики и кибернетики

Аннотация: В работе представлена реализация статического анализа для языка Visual Basic .NET в рамках промышленного инструмента SharpChecker. С помощью фреймворка компилятора Roslyn в SharpChecker была интегрирована поддержка языка Visual Basic .NET. Это позволило выполнять статический анализ исходного кода на языке Visual Basic .NET. В рамках работы также был создан репрезентативный набор синтетических тестов, содержащий суммарно более 2000 тестов. Тестирование производилось как на созданной выборке тестов, так и на наборе реальных проектов с открытым исходным кодом суммарным объемом более 1.6 млн. строк кода. Было обнаружено 7926 новых предупреждений в исходном коде на языке Visual Basic .NET, из которых 1093 были проанализированы и размечены вручную. Итоговая точность анализа составила 84.72%. Кроме того, были обнаружены предупреждения, связанные с кодом на языках C# и Visual Basic .NET одновременно, что показало возможность производить межъязыковой анализ в проектах, которые содержат сразу два языка платформы .NET. Добавление поддержки языка Visual Basic .NET в инструмент SharpChecker не отразилось на времени работы и на качестве анализа для языка C#.

Ключевые слова: статический анализ, Visual Basic .NET, символьное исполнение, анализ потоков данных, генерация кода

DOI: 10.15514/ISPRAS-2025-37(6)-18



© МИАН, 2026