AbstractsComputer Science

Abstract Syntax Tree Analysis for Plagiarism Detection; Analys av abstrakta syntaxträd för detektion av plagiat

by Erik Nilsson




Institution: Linköping University
Department:
Year: 2012
Keywords: abstract syntax tree; plagiarism; clone detection; fingerprint; Natural Sciences; Computer and Information Science; Computer Science; Naturvetenskap; Data- och informationsvetenskap; Datavetenskap (datalogi); Technology; teknik; Datavetenskap vid LiTH; Computer and information science at the Institute of Technology
Record ID: 1337733
Full text PDF: http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-80888


Abstract

Today, universities rely heavily on systems for detecting plagiarism in students’essays and reports. Code submissions however require specific tools. A numberof approaches to finding plagiarisms in code have already been tried, includingtechniques based on comparing textual transformations of code, token strings,parse trees and graph representations. In this master’s thesis, a new system, cojac,is presented which combines textual, tree and graph techniques to detect a broadspectrum of plagiarism attempts. The system finds plagiarisms in C, C++ and Adasource files. This thesis discusses the method used for obtaining parse trees fromthe source code and the abstract syntax tree analysis. For comparison of syntaxtrees, we generate sets of fingerprints, digest forms of trees, which makes thecomparison algorithm more scalable. To evaluate the method, a set of benchmarkfiles have been constructed containing plagiarism scenarios which was analyzedboth by our system and Moss, another available system for plagiarism detection incode. The results show that our abstract syntax tree analysis can effectively detectplagiarisms such as changing the format of the code and renaming of identifiersand is at least as effective as Moss for detecting plagiarisms of these kinds