I. Introduction
Computer programs exhibit similarities that can be detected before, during, and after execution time. Being similar means sharing syntactical or semantical structure in a significant proportion. Programs that are similar tend to behave in similar manner too. This can be utilized, for example, in the analysis and improvement of the overall performance of a set of programs by focusing on finding patterns that behave similar but have a different performance. The detection of program similarities has been identified as an emerging topic in software engineering areas [1].