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

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

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



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






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


Труды института системного программирования РАН, 2023, том 35, выпуск 6, страницы 103–120
DOI: https://doi.org/10.15514/ISPRAS-2023-35(6)-6
(Mi tisp835)
 

Статический анализ на основе обобщённого абстрактного синтаксического дерева

В. О. Афанасьевab, А. Е. Бородинa, К. И. Вихлянцевac, А. А. Белеванцевda

a Институт системного программирования им. В.П. Иванникова РАН
b Национальный исследовательский университет "Высшая школа экономики"
c Московский физико-технический институт
d Московский государственный университет имени М. В. Ломоносова
Аннотация: В работе описывается универсальное представление для абстрактного синтаксического дерева (АСД), подходящее для статического анализа нескольких языков программирования. Предлагаемая схема анализа состоит в сохранении промежуточного представления в виде обобщенного АСД из компиляторов соответствующих языков и последующим анализом сохраненных деревьев. Мы реализовали такое представление для Java, Kotlin и Python. В анализаторе обобщенного АСД реализовано 27 детекторов. Мы описываем сущности предлагаемого представления, особенности его реализации для поддержанных языков. Приводим экспериментальные результаты скорости и качества анализа, а также сравнения анализа на обобщенном АСД с анализом, выполненным ранее на АСД конкретного компилятора. В итоге подход демонстрирует некоторое ухудшение скорости анализа, но позволяет разделить построение АСД для анализа и реализацию детекторов, что упрощает разработку АСД-детекторов в случае, когда количество поддерживаемых анализатором языков становится значительным.
Ключевые слова: статический анализ, поиск ошибок, АСД, синтаксический анализ, Java, Kotlin, Python, Svace
Тип публикации: Статья
Образец цитирования: В. О. Афанасьев, А. Е. Бородин, К. И. Вихлянцев, А. А. Белеванцев, “Статический анализ на основе обобщённого абстрактного синтаксического дерева”, Труды ИСП РАН, 35:6 (2023), 103–120
Цитирование в формате AMSBIB
\RBibitem{AfaBorVih23}
\by В.~О.~Афанасьев, А.~Е.~Бородин, К.~И.~Вихлянцев, А.~А.~Белеванцев
\paper Статический анализ на основе обобщённого абстрактного синтаксического дерева
\jour Труды ИСП РАН
\yr 2023
\vol 35
\issue 6
\pages 103--120
\mathnet{http://mi.mathnet.ru/tisp835}
\crossref{https://doi.org/10.15514/ISPRAS-2023-35(6)-6}
Образцы ссылок на эту страницу:
  • https://www.mathnet.ru/rus/tisp835
  • https://www.mathnet.ru/rus/tisp/v35/i6/p103
  • Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Труды института системного программирования РАН
     
      Обратная связь:
     Пользовательское соглашение  Регистрация посетителей портала  Логотипы © Математический институт им. В. А. Стеклова РАН, 2025