Analyzing C/C++ code entities and relations for program understanding

This paper describes the static analysis tool for finding program entities, their metrics, and relations between entities. Program entities are files/directories (physical structure) and classes/functions/methods/global variables (logical structure). Relations are connections between entities, such...

Full description

Bibliographic Details
Main Authors: A. . Belevantsev, E. . Velesevich
Format: Article
Language:English
Published: Ivannikov Institute for System Programming of the Russian Academy of Sciences 2018-10-01
Series:Труды Института системного программирования РАН
Subjects:
Online Access:https://ispranproceedings.elpub.ru/jour/article/view/1090
_version_ 1818155177953198080
author A. . Belevantsev
E. . Velesevich
author_facet A. . Belevantsev
E. . Velesevich
author_sort A. . Belevantsev
collection DOAJ
description This paper describes the static analysis tool for finding program entities, their metrics, and relations between entities. Program entities are files/directories (physical structure) and classes/functions/methods/global variables (logical structure). Relations are connections between entities, such as calls, inheritance, aggregation, reading/writing, inclusion. We describe the methods for developing such a tool for C/C++ languages based on open source components: LLVM/Clang compiler infrastructure, GNU Binutils linker and archiver. We are sketching the changes that were required to be made in the Clang compiler, and we discuss the analysis methods implemented in the LLVM analyzer. We briefly present the results of testing our tool on Android OS.
first_indexed 2024-12-11T14:38:16Z
format Article
id doaj.art-e3f930efb305449394e67145894fcd34
institution Directory Open Access Journal
issn 2079-8156
2220-6426
language English
last_indexed 2024-12-11T14:38:16Z
publishDate 2018-10-01
publisher Ivannikov Institute for System Programming of the Russian Academy of Sciences
record_format Article
series Труды Института системного программирования РАН
spelling doaj.art-e3f930efb305449394e67145894fcd342022-12-22T01:02:04ZengIvannikov Institute for System Programming of the Russian Academy of SciencesТруды Института системного программирования РАН2079-81562220-64262018-10-01272536410.15514/ISPRAS-2015-27(2)-41090Analyzing C/C++ code entities and relations for program understandingA. . Belevantsev0E. . Velesevich1ИСП РАНИСП РАНThis paper describes the static analysis tool for finding program entities, their metrics, and relations between entities. Program entities are files/directories (physical structure) and classes/functions/methods/global variables (logical structure). Relations are connections between entities, such as calls, inheritance, aggregation, reading/writing, inclusion. We describe the methods for developing such a tool for C/C++ languages based on open source components: LLVM/Clang compiler infrastructure, GNU Binutils linker and archiver. We are sketching the changes that were required to be made in the Clang compiler, and we discuss the analysis methods implemented in the LLVM analyzer. We briefly present the results of testing our tool on Android OS.https://ispranproceedings.elpub.ru/jour/article/view/1090понимание программllvmстатический анализметрики исходного кода
spellingShingle A. . Belevantsev
E. . Velesevich
Analyzing C/C++ code entities and relations for program understanding
Труды Института системного программирования РАН
понимание программ
llvm
статический анализ
метрики исходного кода
title Analyzing C/C++ code entities and relations for program understanding
title_full Analyzing C/C++ code entities and relations for program understanding
title_fullStr Analyzing C/C++ code entities and relations for program understanding
title_full_unstemmed Analyzing C/C++ code entities and relations for program understanding
title_short Analyzing C/C++ code entities and relations for program understanding
title_sort analyzing c c code entities and relations for program understanding
topic понимание программ
llvm
статический анализ
метрики исходного кода
url https://ispranproceedings.elpub.ru/jour/article/view/1090
work_keys_str_mv AT abelevantsev analyzingcccodeentitiesandrelationsforprogramunderstanding
AT evelesevich analyzingcccodeentitiesandrelationsforprogramunderstanding