Сборники трудов ИСП РАН


Анализ сущностей программ на языках Си/Си++ и связей между ними для понимания программ

А.А. Белеванцев (ИСП РАН, Москва), Е.А. Велесевич (ИСП РАН, Москва)

Аннотация

В статье рассматривается инструмент статического анализа программ, определяющий сущности программы на языке Си или Си++, их метрики и связи между ними. Сущностями программы являются файлы, функции, классы, методы и т.п., а связями – вызовы, наследование, чтение/запись глобальных переменных, включение, агрегация. Описываются методы построения такого инструмента на основе открытой компиляторной инфраструктуры LLVM[1], включая необходимые доработки в компиляторе Clang[2] и разработанный анализатор. Представляются результаты тестирования инструмента на коде ОС Android.

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

понимание программ; LLVM; статический анализ; метрики исходного кода

Издание

Труды Института системного программирования РАН, том 27, вып. 2, 2015, стр. 53-64.

ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).

DOI: 10.15514/ISPRAS-2015-27(2)-4

Полный текст статьи в формате pdf Вернуться к содержанию тома