Проверка исходных текстов программ на плагиат с использованием графа зависимости программы (program dependence graph).
Поддержанные языки программирования:
- Python
Требуются установленные go1.11+, python3.8+ и gcc.
git clone https://github.com/AleksMa/GraphStealChecker.git
cd GraphStealChecker
git submodule update --init --recursive
pip install -r requirements.txtgo build -o ./bin/main main.go
./bin/main -p=8080Загрузка программ на проверку производится по адресу 127.0.0.1:<port>, где - указанный во флаге -p порт, по умолчанию 8080.
Параметры:
- Лимит времени проверки - задается в секундах, устанавливает максимальное время поиска наибольших общих подграфов,
натуральное число - Минимальная доля вершин - какая часть вершин графа каждой функции по меньшей мере должна входить в общий подграф (ограничение снизу размер общего подграфа),
вещественное число от 0 до 1 - Уровень правдоподобия - параметр проверки статистической гипотезы на предмет близости графов при поиске максимального общего подграфа,
вещественное число от 0 до 1
Примеры файлов для проверки:
data/simpleX.py- тривиальные примеры кодаdata/lab2/- лабораторные работы по курсу "Алгоритмы компьютерной графики". Как правило, содержат похожие участки кода (например, функции обработки нажатий на клавиши).
check- пакет работы с графом зависимости программ и проверяемым исходным кодом, Godata- примеры Python-программ для проверкиnet- пакет работы с сетью, GoPyDG- подмодуль генерации графа зависимости программ, Python3PyMCS- алгоритм поиска максимальных общих подграфов с точностью до изоморфизма, Python3