It is difficult to develop style-preserving source-to-source transformation engines for C and C++. The main reason is not the complexity of those languages, but the use of the C pre-processor (cpp), especially ifdefs and macros. This has for example hindered the development of refactoring tools for C and C++. In this paper we propose to combine multiple techniques and heuristics to parse C/C++ source files as-is, while still having only a few modifications to the original grammars of C and C++. We rely on the fact that in most C and C++ software, programmers follow a limited number of conventions on the use of cpp which makes it possible to disambiguate different situations by just looking at the context, names, or indentation of cpp con...
Submitted to SIGPLAN Notices for publication. Abstract It is difficult, if not impossible, for the c...
Refactoriug has become a well-known technique for transforming code in a way that preserves behavior...
The significance of a source code translator between Turbo Pascal and Turbo C cannot be underestimat...
It is difficult to develop style-preserving source-to-source transformation engines for C and C++. T...
Though the C preprocessor provides necessary language features, it does so in an unstructured way. T...
The C preprocessor is heavily used in C programs because it provides useful and even necessary addit...
The C preprocessor is heavily used in C programs because it provides useful and even necessary addit...
The parser-generator yacc is one of the oldest examples of a domain-specific language, providing si...
AbstractAs software systems become increasingly massive, the advantages of automated transformation ...
The C preprocessor cpp is a widely used tool for implement-ing variable software. It enables program...
C preprocessor directives are heavily used in C programs because they provide useful and even necess...
Tool support for refactoring code written in mainstream languages such as C and C is currently lacki...
It is difficult, if not impossible, for the code analyzers to employ front end from compilers, becau...
It is difficult, if not impossible, for the code analyzers to employ front end from compilers, becau...
This article investigates several source-to-source C compilers for extracting pre-execution thread c...
Submitted to SIGPLAN Notices for publication. Abstract It is difficult, if not impossible, for the c...
Refactoriug has become a well-known technique for transforming code in a way that preserves behavior...
The significance of a source code translator between Turbo Pascal and Turbo C cannot be underestimat...
It is difficult to develop style-preserving source-to-source transformation engines for C and C++. T...
Though the C preprocessor provides necessary language features, it does so in an unstructured way. T...
The C preprocessor is heavily used in C programs because it provides useful and even necessary addit...
The C preprocessor is heavily used in C programs because it provides useful and even necessary addit...
The parser-generator yacc is one of the oldest examples of a domain-specific language, providing si...
AbstractAs software systems become increasingly massive, the advantages of automated transformation ...
The C preprocessor cpp is a widely used tool for implement-ing variable software. It enables program...
C preprocessor directives are heavily used in C programs because they provide useful and even necess...
Tool support for refactoring code written in mainstream languages such as C and C is currently lacki...
It is difficult, if not impossible, for the code analyzers to employ front end from compilers, becau...
It is difficult, if not impossible, for the code analyzers to employ front end from compilers, becau...
This article investigates several source-to-source C compilers for extracting pre-execution thread c...
Submitted to SIGPLAN Notices for publication. Abstract It is difficult, if not impossible, for the c...
Refactoriug has become a well-known technique for transforming code in a way that preserves behavior...
The significance of a source code translator between Turbo Pascal and Turbo C cannot be underestimat...