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 :
بازگشت