Preview

Труды Института системного программирования РАН

Расширенный поиск

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

https://doi.org/10.15514/ISPRAS-2015-27(2)-4

Аннотация

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

Об авторах

А. А. Белеванцев
ИСП РАН
Россия


Е. А. Велесевич
ИСП РАН
Россия


Список литературы

1. The LLVM Compiler Infrastructure. http://LLVM.org/

2. Clang compiler. http://clang.llvm.org

3. Инструмент Understand. https://scitools.com/

4. Инструмент Imagix4D. http://www.imagix.com/products/source-code-analysis.html

5. А. Аветисян, А. Белеванцев, А. Бородин, В. Несов. Использование статического анализа для поиска уязвимостей и критических ошибок в исходном коде программ. Труды Института системного программирования РАН, том 21, 2011 г, стр. 23-38.

6. Иванников, В. П., Белеванцев, А. А., Бородин, А. Е., Игнатьев, В. Н., Журихин, Д. М., Аветисян, А.И, Леонов, М. И. Статический анализатор Svace для поиска дефектов в исходном коде программ. Труды Института системного программирования РАН, том 26, выпуск 1, 2014 г., стр. 231-250.

7. Пакет GNU Binutils. http://www.gnu.org/software/binutils/


Рецензия

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


Белеванцев А.А., Велесевич Е.А. Анализ сущностей программ на языках Си/Си++ и связей между ними для понимания программ. Труды Института системного программирования РАН. 2015;27(2):53-64. https://doi.org/10.15514/ISPRAS-2015-27(2)-4

For citation:


Belevantsev A., Velesevich E. Analyzing C/C++ code entities and relations for program understanding. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2015;27(2):53-64. (In Russ.) https://doi.org/10.15514/ISPRAS-2015-27(2)-4



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


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