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

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

Аннотация

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