Popis: |
Проведено аналіз літератури, методів та інструментів, які дозволяють виявити дублікати текстів програмного забезпечення у великих проектах та у студентських роботах, що використовують різні підходи, заснованих на метриках, узгодженні шаблонів послідовності токенів, аналізі абстрактного синтаксичного дерева (AST) або графа залежностей програми (PDG). У даній роботі описано та реалізовано технологію виявлення дублікатів засновану на абстрактному синтаксичному дереві, обчислюючи хеш-значення вузлів синтаксичного дерева та порівнюючи їх. Для оптимізації використаної пам’яті було застосовано алгоритм Winnowing. Дана розробка дозволяє виявляти дублікати коду студентських робіт в автоматичному режимі, на різних мовах програмування з достатнім рівнем точності. |