Масштабируемый инструмент поиска клонов кода на основе семантического анализа программ
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) для каждой единицы компиляции. На втором этапе производится анализ поиска клонов кода в построенных графах. В инструменте существует отдельный этап тестирования алгоритмов, который будет подключен при запуске инструмента в режиме тестирования. Это дает возможность автоматической генерации тестов и проверки точности реализованных алгоритмов.
ПодробнееДля того чтобы оставить комментарий необходимо авторизоваться.