• DocumentCode
    2139713
  • Title

    Analyzing the Effect of Preprocessor Annotations on Code Clones

  • Author

    Schulze, Sandro ; Jürgens, Elmar ; Feigenspan, Janet

  • Author_Institution
    Univ. of Magdeburg, Magdeburg, Germany
  • fYear
    2011
  • fDate
    25-26 Sept. 2011
  • Firstpage
    115
  • Lastpage
    124
  • Abstract
    The C preprocessor cpp is a powerful and language-independent tool, widely used to implement variable software in different programming languages (C, C++) using conditional compilation. Preprocessor annotations can used on different levels of granularity such as functions or statements. In this paper, we investigate whether there is a relation between code clones and preprocessor annotations. Specifically, we address the question whether the discipline of annotation has an effect on code clones. To this end, we perform a case study on fifteen different C programs and analyze them regarding code clones and #ifdef occurrences. We found only minor effects of annotations on code clones, but a relationship between annotations that align with the code structure (and code clones). With this work, we provide new insights why code clones occur in C programs. Furthermore, the results can support the decision whether or not it is beneficial to remove clones.
  • Keywords
    C language; program compilers; #ifdef occurrences; C preprocessor; C programs; code clones; cpp; language independent tool; preprocessor annotations; variable software; Algorithm design and analysis; Cloning; Programming; Software systems; Synchronization; XML; C preprocessor; code clones; empirical study; software maintenance;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Source Code Analysis and Manipulation (SCAM), 2011 11th IEEE International Working Conference on
  • Conference_Location
    Williamsburg, VI
  • Print_ISBN
    978-1-4577-0932-6
  • Type

    conf

  • DOI
    10.1109/SCAM.2011.12
  • Filename
    6065170