As we migrate software to new versions of programming languages, we would like to improve the style of its design and implementation by replacing brittle idioms and abstractions with the more robust features of the language and its libraries. This process is called source code rejuvenation. In this context, we are interested in replacing C preprocessor macros in C++ programs with C++11 declarations. The kinds of problems engendered by the C preprocessor are many and well known. Because the C preprocessor operates on the token stream independently from the host language’s syntax, its extensive use can lead to hard-to-debug semantic errors. In C++11, the use of generalized constant expressions, type deduction, perfect forwarding, lambda expr...
Decompilation is a reconstruction of a program in a high-level language from a program in a low-leve...
Programmers often want to transform the source or binary representations of their programs (e.g., to...
This paper presents our design and implementation of program transformation for C++ that will be use...
With the prevalence of legacy C/C++ code, issues of readability and maintainability have become incr...
The C preprocessor is heavily used in C programs because it provides useful and even necessary addit...
AbstractAs software systems become increasingly massive, the advantages of automated transformation ...
AbstractAs software systems become increasingly massive, the advantages of automated transformation ...
Refactoriug has become a well-known technique for transforming code in a way that preserves behavior...
C preprocessor directives are heavily used in C programs because they provide useful and even necess...
It is difficult to develop style-preserving source-to-source transformation engines for C and C++. T...
The C preprocessor is heavily used in C programs because it provides useful and even necessary addit...
Abstraction based programming has been traditionally seen as an approach that improves software qual...
Conditional compilation related work -- Include dependency related work -- Macro related work -- Des...
Tool support for refactoring code written in mainstream languages such as C and C is currently lacki...
The ubiquitous use of raw pointers in higher-level code is the primary cause of all memory usage pro...
Decompilation is a reconstruction of a program in a high-level language from a program in a low-leve...
Programmers often want to transform the source or binary representations of their programs (e.g., to...
This paper presents our design and implementation of program transformation for C++ that will be use...
With the prevalence of legacy C/C++ code, issues of readability and maintainability have become incr...
The C preprocessor is heavily used in C programs because it provides useful and even necessary addit...
AbstractAs software systems become increasingly massive, the advantages of automated transformation ...
AbstractAs software systems become increasingly massive, the advantages of automated transformation ...
Refactoriug has become a well-known technique for transforming code in a way that preserves behavior...
C preprocessor directives are heavily used in C programs because they provide useful and even necess...
It is difficult to develop style-preserving source-to-source transformation engines for C and C++. T...
The C preprocessor is heavily used in C programs because it provides useful and even necessary addit...
Abstraction based programming has been traditionally seen as an approach that improves software qual...
Conditional compilation related work -- Include dependency related work -- Macro related work -- Des...
Tool support for refactoring code written in mainstream languages such as C and C is currently lacki...
The ubiquitous use of raw pointers in higher-level code is the primary cause of all memory usage pro...
Decompilation is a reconstruction of a program in a high-level language from a program in a low-leve...
Programmers often want to transform the source or binary representations of their programs (e.g., to...
This paper presents our design and implementation of program transformation for C++ that will be use...