Труды института системного программирования РАН
RUS  ENG    ЖУРНАЛЫ   ПЕРСОНАЛИИ   ОРГАНИЗАЦИИ   КОНФЕРЕНЦИИ   СЕМИНАРЫ   ВИДЕОТЕКА   ПАКЕТ AMSBIB  
Общая информация
Последний выпуск
Архив

Поиск публикаций
Поиск ссылок

RSS
Последний выпуск
Текущие выпуски
Архивные выпуски
Что такое RSS



Труды ИСП РАН:
Год:
Том:
Выпуск:
Страница:
Найти






Персональный вход:
Логин:
Пароль:
Запомнить пароль
Войти
Забыли пароль?
Регистрация


Труды института системного программирования РАН, 2022, том 34, выпуск 6, страницы 29–40
DOI: https://doi.org/10.15514/ISPRAS-2022-34(6)-2
(Mi tisp736)
 

Повышение точности статического анализа за счет учета значений полей класса, имеющих единственное константное значение

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

a Московский физико-технический институт
b Институт системного программирования им. В.П. Иванникова РАН
c Московский государственный университет имени М. В. Ломоносова
Аннотация: В данной статье описывается подход, позволяющий с помощью предварительного анализа полей с единственным возможным значением повысить точность работы детекторов статического анализатора уровня символьного выполнения. Помимо этого, детектор предупреждает программиста о забытых модификаторах readonly и о неиспользуемых полях. Детектор был реализован в рамках промышленного статического анализатора SharpChecker для языка C#. Анализ проводится на уровне абстрактного синтаксического дерева, что позволяет снизить затраты времени и ресурсов. Сохраненные значения для ряда полей позволяют использовать конкретные константы вместо символьных значений на этапе символьного выполнения, тем самым повышая точность. В результате удалось заметно улучшить качество некоторых анализаторов, таких как UNREACHABLE_CODE (улучшение на 7.57%) или DEREF_OF_NULL (улучшение на 1.33%), и получить новые срабатывания в случаях с забытым readonly или неиспользуемыми полями. Хорошие результаты позволили включить детектор в основную ветку SharpChecker и предоставить его пользователям. В работе подробно рассмотрен алгоритм работы детектора и приведены примеры срабатываний на наборе ПО с открытым исходным кодом.
Ключевые слова: статический анализ, C#, неиспользуемое поле, забытый readonly, повышение точности, анализ использования полей, единожды инициализированное поле
Тип публикации: Статья
Образец цитирования: В. С. Карцев, В. Н. Игнатьев, “Повышение точности статического анализа за счет учета значений полей класса, имеющих единственное константное значение”, Труды ИСП РАН, 34:6 (2022), 29–40
Цитирование в формате AMSBIB
\RBibitem{KarIgn22}
\by В.~С.~Карцев, В.~Н.~Игнатьев
\paper Повышение точности статического анализа за счет учета значений полей класса, имеющих единственное константное значение
\jour Труды ИСП РАН
\yr 2022
\vol 34
\issue 6
\pages 29--40
\mathnet{http://mi.mathnet.ru/tisp736}
\crossref{https://doi.org/10.15514/ISPRAS-2022-34(6)-2}
Образцы ссылок на эту страницу:
  • https://www.mathnet.ru/rus/tisp736
  • https://www.mathnet.ru/rus/tisp/v34/i6/p29
  • Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Труды института системного программирования РАН
    Статистика просмотров:
    Страница аннотации:10
    PDF полного текста:2
     
      Обратная связь:
     Пользовательское соглашение  Регистрация посетителей портала  Логотипы © Математический институт им. В. А. Стеклова РАН, 2024