<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>High Level Features for Detecting Source Code Plagiarism across Programming Languages</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>W. A. Luna-Ramírez</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>CCS Concepts</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universidad Autónoma Metropolitana Unidad Cuajimalpa México D.F</institution>
        </aff>
      </contrib-group>
      <fpage>10</fpage>
      <lpage>14</lpage>
      <abstract>
        <p>In this paper we describe the participation of the Language and Reasoning group from UAM-C in the context of the Cross Language SOurce COde re-use competition (CL-SOCO 2015). We proposed a representation of source code pairs by using ve high level features; namely: i ) lexical feature, ii ) stylistic feature, iii ) comments feature, iv ) programmer's text feature, and v ) structure feature. We combine these di erent representations in three ways, each of which was a run submission for the CL-SOCO competition. Obtained results indicate that proposed representations provide some information that allows to detect particular cases of source code re-use.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>High level feature; Document representation; Plagiarism
detection; Source code plagiarism</p>
    </sec>
    <sec id="sec-2">
      <title>1. INTRODUCTION</title>
      <p>
        Source code re-use identi cation has been an interesting
topic in two fronts: in the software industry and in the
academia. On one hand, software companies are very
interested on protect their own software developments; thus,
they invest lots of e ort and money in trying to do so. On
the other hand, the academia, mainly on computing related
areas, worries that their students do not plagiarize source
code neither from other students nor from the forums on
the Internet [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        The competition of Source Code Re-Use emerge in this
context, when in 2014 [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] they invited to the scienti c
community to a shared task in order to evaluate systems that
E-mail
address:
identify re-use source code cases in a monolingual scenario.
Later, in this year 2015, the task considers a cross-language
scenario, that is, when a programmer tries to re-use source
code from one language, say Java, to another, say C.
      </p>
      <p>In this paper, we present our methodology to solve the
problem of nding source code re-use cases across Java and
C programming languages. Consequently, we use a set of ve
high level features within a classi cation problem, namely:
lexical, stylistic, comments, programmer's text, and
structural features.</p>
      <p>The rest of the paper is organized as follows, in Section
2 we describe the research work more closely related to our
proposed methodology. In Section 3, we brie y describe the
shared task. Then, in Section 4, we describe the
computation of each of our ve proposed features. Our Section 5
presents the experiment evaluation carried out on the
training set. Section 6 shows the details of submitted runs, and
nally in Section 7, we present our conclusions and some
future perspectives.
2.</p>
    </sec>
    <sec id="sec-3">
      <title>RELATED WORK</title>
      <p>
        There are several approaches and tools for nding
plagiarism in source code [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Some of the most representatives'
approaches are those that try to nd syntactic similarities
through the codes, in the same source language. Some of
those are based on searching similar n-grams or small
character sequences (strings) between two source codes. Some
examples are: the proposed by Flores et al. [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and, the
proposed by Wettel et al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] respectively. Likewise, other
approaches have tried to detect lexical similarities. For
example the proposed approaches by Krinke et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] or Chae
et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] that look for graph dependencies (of how methods
are called) inside the abstract syntax tree.
      </p>
      <p>
        Focusing beyond watching a certain characteristic, the
approach proposed by Ramirez et al. [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] evaluates a set of
three di erent types of features in order to determine the
similarity between code sources. The features are: 1)
lexical (character n-grams), 2) structural (function names and
parameter names and types), and 3) stylistic (the number
of lines of code, the number of white spaces, the number of
tabulations, the number of empty lines, the number of
dened functions, average word length, the number of upper
case letters, the number of lower case letters, the number of
under scores, vocabulary size, and the lexical richness). This
combination has shown important aspects, with acceptable
results, for determining plagiarism between pairs of Java
source codes.
      </p>
      <p>
        On the other hand, some researchers have focused on
trying to identify similarities or code clones in software
written in di erent languages. Basically, their methods use an
intermediate language to change the codes into it, but at
the end, they search for similarities in the same language.
An example of such methods is the proposal of Al-Omari
et al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] in which clones of software, speci ed in di erent
languages belonging to .NET framework, can be recognized.
In this proposal the software is analyzed when it is
transformed into the Common Intermediate Language, which is
the result of compiling source code in .NET, to nally look
for similarities.
      </p>
      <p>
        Another example of the use of an intermediate language
is the work of Brixel et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. They focus on identifying
language-independent code clones, for doing that they
preprocessed the source codes, to take them to an intermediate
language, and then they use an alignment method based on
the parallel principle at local resolution (character level) to
compute similarities between documents.
      </p>
      <p>
        There are other proposals that do not take the source code
as main point, instead they focus on the source code le
content. That is the case of the approach proposed by Vidhya et
al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] where two types of metrics are calculated. The rst
kind of metrics work at method level: Number of lines of
code, arguments, function calls, local variables, conditional
statements, looping statements, return statements,
assignment statements. The second type of metrics work at le
level: Number of lines of code, variables declared, methods
de ned, function calls, and sequences of function calls. The
author compare two documents by di erences in each of the
metrics described before; then, they detect a case of clone
using a manual threshold of the average of the di erences in
the metrics computed.
      </p>
      <p>As can be observed, some of the methods described
before are expensive to apply in large collections (for instance
those based on compute the syntax tree), others depend on
translators for each programming language to being used,
and others need a manually thresholds to identify re-use
(plagiarized) source code pairs. Contrary to these previous
methods, we proposed to use ve high level features that are
both, easy to compute and considered more than one type
of aspect in the source code les.</p>
    </sec>
    <sec id="sec-4">
      <title>3. SHARED TASK DESCRIPTION</title>
      <p>
        CL-SOCO, Cross Language Detection of SOurce COde
Re-use, is a shared task that focuses on cross-language source
code re-use detection. Participant systems were provided
with a set of cross-lingual training and test sets of source
code les. The task consists on identifying the source code
pairs that have been re-use at a document level across
programming languages, particularly, Java and C. The details
about the tasks are described in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Note that the
relevance judgments represent cases of re-use in both directions,
i.e., the direction of the re-use is not being detected. The
provided training set has 599 pairs (Java-C) of source code
documents and the test set has 79 source code documents.
4.
      </p>
    </sec>
    <sec id="sec-5">
      <title>PROPOSED HIGH LEVEL FEATURES</title>
      <p>In this section we describe our proposed representation for
source code documents as a set of ve high level features,
in order to identify source code re-use. To compute each
of these features, we represent a document in ve di erent
ways. Particularly, for the lexical, comments and
programmer's text features, we represent each document as a set of
characters n-grams; for the stylistic feature, we use eleven
attributes; and for the structural feature we use another ten
attributes.</p>
      <p>The idea behind these set of high level features is to
capture aspect of source code that are inherent to the
programmer more than a particular programming language. Thus,
the stylistic feature capture information about the writing
style of the programmer; the comments' feature attends for
only the information in natural language that the
programmer uses to explain the code; programmer's text feature takes
into account the strings that the program produces, that is,
text that, again, little has to do with the programming
language per se. Additionally, the lexical and structural
features take advantage of the fact that both language at hand
(that is, Java and C) share, at some extent, some syntax.
Next, we describe each of the ve high level proposed
features.</p>
      <p>
        Lexical feature. The idea behind this representation is
to nd a global similarity along the entire document using
the representation proposed by Flores [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. We compute this
feature in the same way as is described in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. That is, we
use a bag of character trigrams where all the white spaces
and line-breaks are deleted and the letters are changed into
lowercase. Additionally, as we know the language of each
source code le a priori, we eliminate the reserved words
within the document. Consequently, given two source code
documents D1 and D2 each one is represented as a vector
according to the vector space model [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], where the
dimension of these vector is given by the vocabulary of character
trigrams in both documents. Finally, the lexical feature is
compute as the cosine similarity of these two vectors (see
Equation 1).
! !
D1 D2
! !
kD1kkD2k
sim(D1; D2) =
(1)
      </p>
      <p>
        Stylistic feature. As in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] we took into account a set
of eleven stylistic characteristics of the programmer code
written style. The characteristics are: the number of lines
of code, the number of white spaces, the number of
tabulations, the number of empty lines, the number of de ned
functions, average word length, the number of upper case
letters, the number of lower case letters, the number of
under scores, vocabulary size, and the lexical richness (i.e.,
the total number of tokens over the vocabulary size). To
determine the stylistic feature we use a vector representation
for all these attributes and we applied the cosine similarity
(Equation 1) between the two vectors.
      </p>
      <p>Comments feature. As we mentioned before, we think
that the explanations and details of the procedures that are
given in the form of comments have particularities that are
inherent to the programmer; thus, these texts allow to
capture information that while re-using the code source can be
left unmodi ed. Accordingly, we use everything between
blocks = ::: = and everything after == as comments.</p>
      <p>First we concatenated all the text written as comments in
the source code document, then we compute the character
trigrams. The next procedure was similar to the described
previously for the lexical feature; that is, to determine the
comments feature we use a vector representation and applied
the cosine similarity as in Equation 1.</p>
      <p>Programmer's text feature. To compute this feature
we considered all the text that were passed as function's
arguments (in prints sentences, for instance), or string that
are assign to some variable (e.g. x="Hello World!"). All
these texts were concatenated together as we did with the
previous features. Finally we use the same vector
representation using character trigrams; then, by computing the cosine
similarity, as in Equation 1, we determine the programmer's
text feature for two given source code documents.</p>
      <p>Structural feature. For this feature we took into
account ten attributes to represent a source code document.
These attributes are: the number of relational operations,
number of arithmetic operations, number of assignment
statements, number of function calls, number of looping
statements, number of write access, number of comments,
number of functions or procedures de ned, number of control
ow statements, and number of return statements. These
ten attributes form a vector for each document; then, the
similarity of two given documents is computed by the cosine
similarity given by the Equation 1.</p>
    </sec>
    <sec id="sec-6">
      <title>5. EXPERIMENTAL EVALUATION</title>
      <p>The evaluation was performed with the training set
provided in the shared task (see Section 3). We carried out a
series of experiments using single features in order to nd
the amount of relevant information given by each one of our
used high level features.</p>
      <p>Lexical Feature
1
0.8
0.6
e
r
o
c
S 0.4
0</p>
      <p>For each experiment we computed the similarities values
of each source code le given in the training set. Then, we
measured the performance of each proposed representation
by means of establishing a manual threshold for considering
when two codes are plagiarized (re-used). That threshold
was set from 10 to 90 percent of similarity in increments of
10%. For each threshold we evaluated the Precision, Recall
and F-measure1.</p>
      <p>The results of our evaluation are given in Figures 1 to
5. From these results we can observe that there are three
1We compute the F-measure as describe in the evaluation
script provided by CL-SOCO 2015 at http://users.dsic.upv.
es/grupos/nle/clsoco/
0.3 0.4 0.5 0.6 0.7 0.8 0.9 1</p>
      <p>Similarity threshold
Figure 2: Results of identi cation of source code re-use when
using the stylistic feature only with manually set thresholds.
0
0.8
0.6
0.2</p>
      <p>Comments Feature
0.3 0.4 0.5 0.6 0.7 0.8 0.9 1</p>
      <p>Similarity threshold
Figure 3: Results of identi cation of source code re-use when
using the comments feature only with manually set
thresholds.</p>
      <p>Programmer’s text Feature</p>
      <p>F mesure
Precision</p>
      <p>Recall
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1</p>
      <p>Similarity threshold
Figure 4: Results of identi cation of source code re-use when
using the programmer's text feature only with manually set
thresholds.</p>
      <p>Structural Feature
0.6
features, lexical, comments and programmer's text features
that perform very well in Precision; this means that by using
all the written text in natural language allows to nd almost
every pair that has been re-use from each other. However,
with two features, namely: stylistic and structural, we
obtained very good Recall. Consequently, we hypothesize that
by using the ve high level features as a representation of
each pair of code, we may have a compromise of Precision
and Recall, hence, a better global performance.</p>
      <p>It is worth to mention that we did not consider the entire
training set (599 pairs). The reason to do this is that we
realized that some pairs labeled as re-use cases were very
di erent (i.e., they solved complete di erent problems). In
order to eliminate noise to our classi cation models, we
computed the similarity (lexical similarity) among the 599 pairs;
then, we computed the average (x) and standard deviation
( ) of those similarity values and we removed all pairs with
similarity values below a standard deviation. This way we
only conserved pairs with similarity value grater than (x ),
that give us a total of 477 pairs.</p>
    </sec>
    <sec id="sec-7">
      <title>6. SUBMITTED RUNS</title>
      <p>
        We submitted three runs for the posed task based on our
proposed representation. For our rst two submissions (run
1 and run 2) we tackled the problems as a binary classi
cation problem, where the classes were re-use and not re-use.
We trained our model using a Random Forest algorithm with
default parameters in the Weka [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] platform.
      </p>
      <p>
        1. Monolingual model (Run 1). As our ve proposed
features focus on aspect that little has to do with a
speci c programming language, we trained a model using
source code re-use pairs for C language only, this set
was the same provided by SOCO 2014 [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. This
training set contains 79 source code les with 26 pairs of
re-use source codes. Once the model was trained we
classi ed the test data (from CL-SOCO 2015) and the
results are shown in Table 1.
2. Cross-language model (Run 2). Here we decided
to train our model with the training set of cross
language examples (the subset of 477 pairs), then we
classi ed the test data and results of this evaluation is
shown in the third row in Table 1.
3. Lexical feature only (run 3). For this third run,
we compute the lexical similarity of every single pair
in the test set. As we see in the training set (Figure 1)
we used a threshold of similarity of 30%. The results
are shown in Table 1.
      </p>
      <p>In Table 1 we can see that our best model is the
monolingual one. This result validates, to some extent, that re-use
cases can be identi ed by aspects that has to do more with
the text in natural language than information of particular
programming language.</p>
      <p>To get a better idea of the performance in this task, in
Table 2 we show our best system (run 1) against the average
performance results of all participant systems and the second
best system. It is worth to mention that our system has the
best performance out of a total of 12 systems.</p>
      <p>Our Run 1</p>
      <p>Second best
Average all systems</p>
      <p>Table 2 shows that our monolingual model globally
outperforms the others systems, that is, among all the actual
re-use pairs we e ectively identify most of them, however we
are only 98.8% sure that they are in fact re-use cases.
7.</p>
    </sec>
    <sec id="sec-8">
      <title>CONCLUSIONS</title>
      <p>In this paper, we have described the experiments
performed by the Language and Reasoning group from UAM-C
in the context of the CL-SOCO 2015 evaluation exercise.
Our proposed system was designed for addressing the
problem of cross-language source code re-use detection by means
of employing ve high level features within a classi cation
problem.</p>
      <p>Particularly, we proposed the following features: i )
lexical feature, ii ) stylistic feature, iii ) comments feature, iv )
programmer's text feature, and v ) structure feature. These
features are more oriented to detect aspects that the
programmers leave in natural language more than in a
particular programming language.</p>
      <p>Obtained results indicate that our proposed features can,
to some extent, identify cases of source code re-use across
Java and C programming language. A deeper analysis need
to be perform in order to determine which feature are the
most useful in this task and if they are o not correlated.</p>
    </sec>
    <sec id="sec-9">
      <title>ACKNOWLEDGMENTS</title>
      <p>Authors would like to thank UAM Cuajimalpa for its
support.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Al-Omari</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Keivanloo</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roy</surname>
            ,
            <given-names>C. K.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Rilling</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <article-title>Detecting clones across Microsoft.NET programming languages</article-title>
          .
          <source>In Reverse Engineering (WCRE)</source>
          ,
          <year>2012</year>
          19th Conference on Working (
          <year>2012</year>
          ), IEEE, pp.
          <volume>405</volume>
          {
          <fpage>414</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Baeza-Yates</surname>
            ,
            <given-names>R. A.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Ribeiro-Neto</surname>
            ,
            <given-names>B. Modern Information</given-names>
          </string-name>
          <string-name>
            <surname>Retrieval. Addison-Wesley Longman</surname>
          </string-name>
          Publishing Co., Inc., Boston, MA, USA,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Brixtel</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fontaine</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lesner</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bazin</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Robbes</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <article-title>Language-independent clone detection applied to plagiarism detection</article-title>
          .
          <source>In Source Code Analysis and Manipulation (SCAM)</source>
          ,
          <year>2010</year>
          10th IEEE Working Conference on (
          <year>2010</year>
          ), IEEE, pp.
          <volume>77</volume>
          {
          <fpage>86</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Chae</surname>
            ,
            <given-names>D.-K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ha</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kim</surname>
          </string-name>
          , S.-W.,
          <string-name>
            <surname>Kang</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Im</surname>
            ,
            <given-names>E. G.</given-names>
          </string-name>
          <article-title>Software plagiarism detection: a graph-based approach</article-title>
          .
          <source>In Proceedings of the 22nd ACM international conference on Conference on information &amp; knowledge management</source>
          (
          <year>2013</year>
          ), ACM, pp.
          <volume>1577</volume>
          {
          <fpage>1580</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Chuda</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Navrat</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kovacova</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Humay</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <article-title>The issue of (software) plagiarism: A student view</article-title>
          .
          <source>IEEE Transactions on Education 55</source>
          ,
          <issue>1</issue>
          (
          <year>February 2012</year>
          ),
          <volume>22</volume>
          {
          <fpage>28</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Flores</surname>
          </string-name>
          , E. Reutilizacion de codigo fuente entre lenguajes de programacion.
          <source>Master's thesis</source>
          , Universidad Politecnica de Valencia, Valencia, Espan~a,
          <year>February 2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Flores</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barron-Cedeno</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosso</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Moreno</surname>
            ,
            <given-names>L. Towards</given-names>
          </string-name>
          <article-title>the detection of cross-language source code reuse</article-title>
          .
          <source>In Natural Language Processing and Information Systems</source>
          . Springer Berlin Heidelberg,
          <year>2011</year>
          , pp.
          <volume>250</volume>
          {
          <fpage>253</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Flores</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosso</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moreno</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Villatoro-Tello</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <article-title>PAN@FIRE: Overview of SOCO track on the detection of SOurce COde Re-use</article-title>
          .
          <source>In Proceedings of the Sixth Forum for Information Retrieval Evaluation (FIRE</source>
          <year>2014</year>
          ) (
          <year>December 2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Flores</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosso</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moreno</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Villatoro-Tello</surname>
            ,
            <given-names>E. PAN@</given-names>
          </string-name>
          <article-title>FIRE 2015: Overview of CL-SOCO track on the detection of cross-language SOurce COde Re-use</article-title>
          .
          <source>In Proceedings of the Seventh Forum for Information Retrieval Evaluation (FIRE</source>
          <year>2015</year>
          ) (
          <year>December 2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Gondaliya</surname>
            ,
            <given-names>T. P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Joshi</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Joshi</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <article-title>Source code plagiarism detection ,SCPDet: A review</article-title>
          .
          <source>International Journal of Computer Applications</source>
          <volume>105</volume>
          ,
          <issue>17</issue>
          (November
          <year>2014</year>
          ),
          <volume>27</volume>
          {
          <fpage>31</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Hall</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Frank</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Holmes</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pfahringer</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reutemann</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Witten</surname>
            ,
            <given-names>I. H.</given-names>
          </string-name>
          <article-title>The WEKA data mining software: An update</article-title>
          .
          <source>SIGKDD Explorations Newsletter</source>
          <volume>11</volume>
          ,
          <issue>1</issue>
          (
          <year>2009</year>
          ),
          <volume>10</volume>
          {
          <fpage>18</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Krinke</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <article-title>Identifying similar code with program dependence graphs</article-title>
          .
          <source>In Reverse Engineering</source>
          ,
          <year>2001</year>
          . Proceedings. Eighth Working Conference on (
          <year>2001</year>
          ), IEEE, pp.
          <volume>301</volume>
          {
          <fpage>309</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Ram</surname>
          </string-name>
          rez-de-la
          <string-name>
            <surname>Cruz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ram</surname>
          </string-name>
          rez-de-la
          <string-name>
            <surname>Rosa</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sanchez-Sanchez</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Luna-Ram rez</surname>
          </string-name>
          , W.,
          <string-name>
            <surname>Jimenez-Salazar</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Rodr</surname>
            guez-Lucatero,
            <given-names>C.</given-names>
          </string-name>
          <article-title>UAM@SOCO 2014: Detection of source code re-use by mean of combining di erent types of representacions.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Vidhya</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sumathi</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Ramya</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <article-title>Cross language higher level clone detection-between two di erent object oriented programming language source codes</article-title>
          .
          <source>In Proceedings of International Conference on Inter Disciplinary Research in Engineering and Technology</source>
          <year>2014</year>
          (
          <year>2014</year>
          ), ASDF, pp.
          <volume>21</volume>
          {
          <fpage>27</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Wettel</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Marinescu</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <article-title>Archeology of code duplication: Recovering duplication chains from small duplication fragments</article-title>
          .
          <source>In Symbolic and Numeric Algorithms for Scienti c Computing</source>
          ,
          <year>2005</year>
          . SYNASC 2005. Seventh International Symposium on (
          <year>2005</year>
          ), IEEE, pp.
          <volume>63</volume>
          {
          <fpage>70</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>