Research Article
Flow Chart Generation-Based Source Code Similarity Detection Using Process Mining
Algorithm 1
Redundant statements preprocessing based on PDGs.
| Input: The original code oc | | Output: The target code tc | | (1) | Generate the PDG of oc: G(V, E, μ, δ);//convert oc to a PDG | | (2) | Denote the end node as G.ve, the target node set as V’; //V’ is the node set that are dependent on the last node | | (3) | for each ∈ V, t = μ() do | | (4) | if (t = = return||t = = output) then//determine whether the current node t is a return statement or an output statement | | (5) | = ; | | (6) | break; | | (7) | end if | | (8) | end for | | (9) | V’ = DFS(V)//get node set that are dependent on the last node | | (10) | for each ∈ G.V do | | (11) | if( ∉ V’) then//delete nodes that do not depend on the last node | | (12) | tc = oc.delete() | | (13) | end if | | (14) | end for |
|