• DocumentCode
    3132724
  • Title

    Giving meaning to macros

  • Author

    Mennie, Christopher A. ; Clarke, Charles L A

  • Author_Institution
    Sch. of Comput. Sci., Waterloo Univ., Ont., Canada
  • fYear
    2004
  • fDate
    24-26 June 2004
  • Firstpage
    79
  • Lastpage
    85
  • Abstract
    With the prevalence of legacy C/C++ code, it continually becomes more important to address the issues of readability and maintainability. When considering the problems with refactoring or migrating C/C++ code we see how important a role preprocessor directives play. In part, because of these preprocessor directives it is extremely difficult to maintain our code. We outline a method of fact extraction and manipulation to create a set of transformations that remove preprocessor directives from the original source, converting them into regular C/C++ code with as few changes as possible, while maintaining readability in the code. In addition, we briefly explore some of the subtle issues that arise when migrating preprocessor directives. After discussing the general architecture of our test implementation, we look at some metrics gathered by running it on two software systems.
  • Keywords
    C language; C++ language; macros; program processors; software maintenance; C/C++ code; C/C++ language; C/C++ preprocessor; fact extraction; fact manipulation; legacy systems; macro processor; macros; software systems; Computer architecture; Computer science; Program processors; Software systems; Software testing; System testing; Visualization;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Program Comprehension, 2004. Proceedings. 12th IEEE International Workshop on
  • ISSN
    1092-8138
  • Print_ISBN
    0-7695-2149-5
  • Type

    conf

  • DOI
    10.1109/WPC.2004.1311050
  • Filename
    1311050