• DocumentCode
    2042249
  • Title

    Analyzing multiple configurations of a C program

  • Author

    Garrido, Alejandra ; Johnson, Ralph

  • Author_Institution
    Illinois Univ., Urbana-Champaign, IL, USA
  • fYear
    2005
  • fDate
    26-29 Sept. 2005
  • Firstpage
    379
  • Lastpage
    388
  • Abstract
    Preprocessor conditionals are heavily used in C programs since they allow the source code to be configured for different platforms or capabilities. However, preprocessor conditionals, as well as other preprocessor directives, are not part of the C language. They need to be evaluated and removed, and so a single configuration selected, before parsing can take place. Most analysis and program understanding tools run on this preprocessed version of the code so their results are based on a single configuration. This paper describes the approach of CRefactory, a refactoring tool for C programs. A refactoring tool cannot consider only a single configuration: changing the code for one configuration may break the rest of the code. CRefactory analyses the program for all possible configurations simultaneously. CRefactory also preserves preprocessor directives and integrates them in the internal representations. The paper also presents metrics from two case studies to show that CRefactory´s program representation is practical.
  • Keywords
    C language; configuration management; program diagnostics; program processors; software metrics; software tools; C program; CRefactory; multiple configuration analysis; preprocessor conditionals; preprocessor directives; program representation; program understanding tools; refactoring tool; Buildings; Data preprocessing; Information analysis; Java; Kernel; Linux; Programming profession; Software maintenance;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance, 2005. ICSM'05. Proceedings of the 21st IEEE International Conference on
  • ISSN
    1063-6773
  • Print_ISBN
    0-7695-2368-4
  • Type

    conf

  • DOI
    10.1109/ICSM.2005.23
  • Filename
    1510133