JPlag – detect source code plagiarism

JPlag is a system that detects similarities between multiple source code submissions in order to identify software plagiarism and collusion. It compares programs structurally rather than performing simple text comparisons, making it resilient to common attempts to disguise copied code such as renaming variables or reformatting programs.

The software analyzes sets of submissions and calculates pairwise similarities between programs. It is widely used in programming education to detect plagiarism in student assignments, but it can also be applied to large code bases to identify duplicated or reused code fragments. JPlag runs locally and supports numerous programming languages including Java, C, C++, C#, Python, JavaScript, Rust, Go, Kotlin, Scala, and others.

This is free and open source software.

Key Features

  • Detects software plagiarism and collusion by identifying similarities among multiple programs.
  • Performs pairwise comparison of submissions to compute similarity scores between programs.
  • Uses syntax-aware analysis of program structure rather than simple text matching, improving robustness against superficial code changes.
  • Tokenizes source code into language-independent token sequences which are compared using similarity algorithms.
  • Supports numerous programming languages including Java, C, C++, C#, Python, JavaScript, TypeScript, Go, Kotlin, R, Rust, Scala, Swift, and others.
  • Can process collections of student assignments or other program sets organized in directories.
  • Generates similarity reports highlighting matching code sections between submissions
  • Includes a report viewer for examining results and exploring similarity relationships between submissions.
  • Provides a command-line interface (CLI) for running plagiarism analysis on local datasets.
  • Allows the programming language to be specified via command options or subcommands when running comparisons.
  • Supports configuration options such as base code exclusion and language-specific parameters.
  • Designed to run locally without uploading source code to external services, protecting privacy of submissions.

Website: github.com/jplag/JPlag
Support:
Developer: JPlag
License: GNU General Public License v3.0

JPlag is written in Java. Learn Java with our recommended free books and free tutorials.


Best Free and Open Source Software LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.

We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more.

Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion.

Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README.
Subscribe

Please read our Comment Policy before commenting.

Notify of
guest
0 Comments
Oldest
Newest Most Voted