Содержание

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

Карцев В.С. (ИСП РАН, Москва, Россия; МФТИ, Московская. обл., Россия)
Игнатьев В. Н. (ИСП РАН, Москва, Россия; МГУ, Москва, Россия)

Аннотация

В работе представлена реализация статического анализа для языка 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#.

Полный текст статьи в формате pdf

Ключевые слова

Издание

Труды Института системного программирования РАН, том 37, вып. 6, часть 2, 2025, стр. 37-52.
ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).
DOI: 10.15514/ISPRAS-2025-37(6)-18.

Для цитирования

Карцев В. С., Игнатьев В. Н. Статический анализ языка Visual Basic .NET. Труды Института системного программирования РАН, том 37, вып. 6, часть 2, 2025, стр. 37-52. DOI: 10.15514/ISPRAS-2025-37(6)-18.

На нашем сайте мы используем cookie файлы, содержащие информацию о предыдущих посещениях веб-сайта. Данные обрабатываются для улучшения качества работы нашего веб-сайта. Если вы не хотите использовать cookie файлы, измените настройки браузера.