• DocumentCode
    2865902
  • Title

    Rejuvenating C++ programs through demacrofication

  • Author

    Kumar, Ajit ; Sutton, Andrew ; Stroustrup, B.

  • Author_Institution
    Comput. Sci. Eng., Texas A&M Univ., College Station, TX, USA
  • fYear
    2012
  • fDate
    23-28 Sept. 2012
  • Firstpage
    98
  • Lastpage
    107
  • Abstract
    We describe how legacy C++ programs can be rejuvenated using C++11 features such as generalized constant expressions, perfect forwarding, and lambda expressions. In general, this work develops a correspondence between different kinds of macros and the C++ declarations to which they should be transformed. We have created a set of demacrofication tools to assist a developer in the rejuvenation of C++ programs. To evaluate the work, we have applied the rejuvenation tools to a number of C++ libraries to assess the extent to which these libraries might be improved by demacrofication. Results indicate that between 68 and 98% of potentially refactorable macros could be transformed into C++11 declarations. Additional experiments demonstrate why these numbers are not readily achieved using fully automated rejuvenation tools. We also discuss some techniques to further assist in automating rejuvenation process.
  • Keywords
    C++ language; software engineering; C++ declaration; C++ library; C++ program rejuvenation; C++11 program; constant expression feature; demacrofication; lambda expression feature; legacy C++ program; perfect forwarding feature; Conferences; Educational institutions; Intellectual property; Libraries; Software maintenance; Syntactics; C++11; demacrofication; macros; refactoring; source code rejuvenation;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance (ICSM), 2012 28th IEEE International Conference on
  • Conference_Location
    Trento
  • ISSN
    1063-6773
  • Print_ISBN
    978-1-4673-2313-0
  • Type

    conf

  • DOI
    10.1109/ICSM.2012.6405259
  • Filename
    6405259