Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1109/ICSM.2012.6405259guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Rejuvenating C++ programs through demacrofication

Published: 23 September 2012 Publication History

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.

Cited By

View all
  • (2020)How C++ Templates Are Used for Generic ProgrammingACM Transactions on Software Engineering and Methodology10.1145/335657929:1(1-49)Online publication date: 30-Jan-2020
  • (2017)Defaultification refactoring: a tool for automatically converting Java methods to defaultProceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering10.5555/3155562.3155691(984-989)Online publication date: 30-Oct-2017
  • (2017)Automated refactoring of legacy Java software to default methodsProceedings of the 39th International Conference on Software Engineering10.1109/ICSE.2017.16(82-93)Online publication date: 20-May-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
ICSM '12: Proceedings of the 2012 IEEE International Conference on Software Maintenance (ICSM)
September 2012
687 pages
ISBN:9781467323130

Publisher

IEEE Computer Society

United States

Publication History

Published: 23 September 2012

Author Tags

  1. C++11
  2. Conferences
  3. Educational institutions
  4. Intellectual property
  5. Libraries
  6. Software maintenance
  7. Syntactics
  8. demacrofication
  9. macros
  10. refactoring
  11. source code rejuvenation

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 22 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2020)How C++ Templates Are Used for Generic ProgrammingACM Transactions on Software Engineering and Methodology10.1145/335657929:1(1-49)Online publication date: 30-Jan-2020
  • (2017)Defaultification refactoring: a tool for automatically converting Java methods to defaultProceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering10.5555/3155562.3155691(984-989)Online publication date: 30-Oct-2017
  • (2017)Automated refactoring of legacy Java software to default methodsProceedings of the 39th International Conference on Software Engineering10.1109/ICSE.2017.16(82-93)Online publication date: 20-May-2017
  • (2016)MacroficationProceedings of the 25th European Symposium on Programming Languages and Systems - Volume 963210.5555/3089528.3089553(644-671)Online publication date: 2-Apr-2016
  • (2016)Towards improving interface modularity in legacy Java software through automated refactoringCompanion Proceedings of the 15th International Conference on Modularity10.1145/2892664.2892681(104-106)Online publication date: 14-Mar-2016
  • (2016)Source Transformation of C++ Codes for Compatibility with Operator OverloadingProcedia Computer Science10.1016/j.procs.2016.05.47080:C(1485-1496)Online publication date: 1-Jun-2016
  • (2015)Documentation of Recovered Architecture for Variability in Legacy Generator SystemsProceedings of the 9th International Workshop on Variability Modelling of Software-Intensive Systems10.1145/2701319.2701323(19-26)Online publication date: 21-Jan-2015

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media