The paper presents a plagiarism detection framework the goal of which is to determine
whether two programs are similar to each other, and if so, to what extent. The issue
of plagiarism detection has been considered earlier for written material, such as
student essays. For these, text-based algorithms have been published. We argue that
in case of program code comparison, structure based techniques may be much more suitable.
The main idea is to transform the source code into mathematical objects, use appropriate
reduction and comparison methods on these, and interpret the results appropriately.
We have designed a generic program structure comparison framework and implemented
it for the Prolog and SML programming languages. We have been using the implementation
at BUTE to successfully detect plagiarism in homework assignments for years.