RUS  ENG
Полная версия
ЖУРНАЛЫ // Труды института системного программирования РАН // Архив

Труды ИСП РАН, 2015, том 27, выпуск 1, страницы 39–50 (Mi tisp112)

Эта публикация цитируется в 3 статьях

Масштабируемый инструмент поиска клонов кода на основе семантического анализа программ

Севак Саргсян, Шамиль Курмангалеев, Андрей Белеванцев, Айк Асланян, Артем Балоян

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

Аннотация: В статье обсуждаются существующие методы поиска семантически сходных участков кода (клонов). Анализируются недостатки каждого метода, на основе чего предлагается новый метод поиска клонов кода и описывается архитектура инструмента для языков C/C++ на основе компиляторной инфраструктуры LLVM, в которой реализован предложенный метод. Работу инструмента можно разделить на два основных этапа. На первом этапе программа компилируется в промежуточное представление LLVM компилятором Clang. По этому представлению строится граф зависимостей программы (Program Dependence Graph — PDG) для каждой единицы компиляции. На втором этапе производится анализ поиска клонов кода в построенных графах. В инструменте существует отдельный этап тестирования алгоритмов, который будет подключен при запуске инструмента в режиме тестирования. Это дает возможность автоматической генерации тестов и проверки точности реализованных алгоритмов.

Ключевые слова: семантический анализ, поиск клонов, PDG, LLVM.

DOI: 10.15514/ISPRAS-2015-27(1)-3



Реферативные базы данных:


© МИАН, 2024