Skip to content

Plagiarism detector for C/C++ source code with Abstract Syntax Tree Comparsion and also Graph Convolutional Networks

License

Notifications You must be signed in to change notification settings

alapha23/source_code_plagiarism_detector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

SNU Source Code Plagiarism Detector

Overview

The basic idea of the detector is

Source Code --> IR From GCC --> AST --> Caculate Tree Edit Distance --> Judge whether it's plagiarism or not

Graghviz for python3 is required.

Use shelllab

cd ast_comparator
bash start.sh

Check graphviz/plagiarism.pdf. It might take 10~20 minutes.

Use other data

Comparision requires *.tu file generated by GCC. You are supposed to compile the program with -fdump-translation-unit -fno-builtin -ffreestanding and place the *.tu file under test/tu

Then, please put all *.tu files under test/tu/ Also, modify test/scope.conf with scopes you would prefer to focus. Please refer to test/scope.conf.example for a good alignment.

# Make sure *.tu under test/tu
# Scope added with name of test/scope.conf and formatted similar to test/scope.conf.example
cd  ast_comparator
bash start.sh

LICENSE

/// 2018/01/22 Gao Zhiyuan created
///
/// Copyright (c) Computer Systems and Platforms Laboratory, SNU
/// All rights reserved.
///
/// Redistribution and use in source and binary forms,  with or without modifi-
/// cation, are permitted provided that the following conditions are met:
///
/// - Redistributions of source code must retain the above copyright notice,
///   this list of conditions and the following disclaimer.
/// - Redistributions in binary form must reproduce the above copyright notice,
///   this list of conditions and the following disclaimer in the documentation
///   and/or other materials provided with the distribution.
///
/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
/// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,  BUT NOT LIMITED TO,  THE
/// IMPLIED WARRANTIES OF MERCHANTABILITY  AND FITNESS FOR A PARTICULAR PURPOSE
/// ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER  OR CONTRIBUTORS BE
/// LIABLE FOR ANY DIRECT,  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSE-
/// QUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF  SUBSTITUTE
/// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
/// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT
/// LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING IN ANY WAY
/// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
/// DAMAGE.

About

Plagiarism detector for C/C++ source code with Abstract Syntax Tree Comparsion and also Graph Convolutional Networks

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published