Název:
Automata Theory Used to Detect Plagiarism
Překlad názvu:
Automata Theory Used to Detect Plagiarism
Autoři:
Beňuš, Alexej ; Havel, Martin (oponent) ; Meduna, Alexandr (vedoucí práce) Typ dokumentu: Bakalářské práce
Rok:
2024
Jazyk:
eng
Nakladatel: Vysoké učení technické v Brně. Fakulta informačních technologií
Abstrakt: [eng][cze]
{Bakalářská práce se zabývá hledáním a rozpoznáváním plagiátorství v programovacím jazyce C++. Jaké metody existují, které jsou nejefektivnější a zároveň ukazuje slabiny těchto metod. Samotný program je naprogramován v C++, s využitím nástroje Clang pro generaci abstraktních syntaktických stromů. Vygenerované stromy se nadále porovnávají různými metodami - statistickou, která počítá a porovnává počty programovacích konstrukcí, algoritmy pro řetězcové porovnávání jako Levenshteinova vzdálenost a nejdelší společný podřetězec a konečně porovnávání stromů, která se soustředí na metodu porovnávání pomocí hashování stromů. Hlavní zaměření práce bylo na strukturální porovnávání C++ programů. Je uvedeno a otestováno několik různých porovnávacích metod. Je také uvedeno nastavení dalších parametrů pro zpřesnění detekce. Po dokončení porovnání, je vypsáno skóre, které podle definované funkce rozhodne zda jsou soubory plagiátorství nebo nikoliv. Také jsou shrnuty některé problémy a slepé uličky v rámci implementace a detekce.
The bachelor's thesis addresses the detection and recognition of plagiarism in the C++ programming language. Which algorithms exist, which methods are the most effective and also showing their weaknesses. The program itself is coded in C++, utilizing Clang for the generation of abstract syntax trees. Generated trees are compared different techniques - statistic comparison utilizing counting and comparing number of coding constructs, string difference operations like Levenshtein distance and longest common substring and finally tree comparison operations which goes deep into comparison of trees using hashes. Main focus was on the structural comparison of C++ programs. Multiple comparison techniques are presented with testing and results. Additional parameters like minimum match size are also presented to make the comparison more precise. After comparison is done, score is presented and with defined functions it is shown if files are or are not plagiarism. Some problems with detection and implementation are also summarized in the text.
Klíčová slova:
abstract syntax tree; C++; Clang; detection; Levenshtein distance; plagiarism; abstraktní syntaktické stromy; C++; Clang; detekce; Levenshteinova vzdálenost; plagiátorství
Instituce: Vysoké učení technické v Brně
(web)
Informace o dostupnosti dokumentu:
Plný text je dostupný v Digitální knihovně VUT. Původní záznam: https://hdl.handle.net/11012/249401