Журнал "Программная инженерия"
Теоретический и прикладной научно-технический журнал
ISSN 2220-3397

Номер 2 2024 год

DOI: 10.17587/prin.15.97-104
УДК: 004.422.81
Обнаружение сходства программного кода с применением агрегированного подхода в задаче выявления плагиата
Д. И. Соломатин, ст. преподаватель, solomatin.cs.vsu.ru@gmail.com, М. Е. Новоточинов, аспирант, tyler532@yandex.ru, Е. Н. Десятирикова, д-р экон. наук, канд. физ.-мат. наук, проф., проф. кафедры, science2000@ya.ru, Воронежский государственный университет

Спроектирована, реализована и протестирована система обнаружения сходства программ­ного кода. Ее отличие от существующих систем заключается в применении агрегированного подхода, позволившего задействовать несколько базовых алгоритмов обнаружения сходства, а именно, использованы алгоритмы жадного замощения строк и просеивания. Для взаимодействия пользователя с системой предусмотрен интерфейс командной строки. Система реализована на языке программирования Python, что обеспечивает независимость новой системы от платформы. Для реализации функций предварительной обработки и исключения шаблонного кода использованы регулярные выражения, для токенизации кода на языке С++ — библиотека libclang. Тестирование полученного решения проводилось на задаче выявления плагиата про­граммного кода. Одной из сфер применения данной системы может быть обнаружение плаги­ата в решениях участников соревнований по программированию, а также работах студентов, предполагающих самостоятельное выполнение.

Ключевые слова: разработка систем, плагиат, строковые алгоритмы, языки программиро­вания, разбор выражений, парсинг кода, токенизация, динамическое программирование, хеши, Python, С++
Стр. 97–104
Ссылка для цитирования:
Соломатин Д. И., Новоточинов М. Е., Десятирикова Е. Н. Обнаружение сходства программного кода с применением агрегированного подхода в задаче выявления плагиата // Программная инженерия. 2024. Том 15, № 2. С. 97—104. DOI: 10.17587/prin.15.97-104.