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

14 сентября 2018
215
Предметная область
Выходные данные
Ключевые слова
Вид публикации Статья
Контактные данные автора публикации Севак Саргсян, Шамиль Курмангалеев, Андрей Белеванцев, Айк Асланян, Артем Балоян
Ссылка на публикацию в интернете www.ispras.ru/proceedings/docs/2015/27/1/isp_27_2015_1_39.pdf

Аннотация

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