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
Link To Document