The love/hate relationship with the C preprocessor: An interview study

F Medeiros, C Kästner, M Ribeiro… - … Conference on Object …, 2015‏ - drops.dagstuhl.de
The C preprocessor has received strong criticism in academia, among others regarding
separation of concerns, error proneness, and code obfuscation, but is widely used in …

Discipline Matters: Refactoring of Preprocessor Directives in the #ifdef Hell

F Medeiros, M Ribeiro, R Gheyi, S Apel… - IEEE Transactions …, 2017‏ - ieeexplore.ieee.org
The C preprocessor is used in many C projects to support variability and portability.
However, researchers and practitioners criticize the C preprocessor because of its negative …

The discipline of preprocessor-based annotations-does# ifdef tag n't# endif matter

R Malaquias, M Ribeiro, R Bonifácio… - 2017 IEEE/ACM 25th …, 2017‏ - ieeexplore.ieee.org
The C preprocessor is a simple, effective, and language-independent tool. Developers use
the preprocessor in practice to deal with portability and variability issues. Despite the …

Do# ifdef-based variation points realize feature model constraints?

AR Santos, E Santana de Almeida - ACM SIGSOFT Software …, 2015‏ - dl.acm.org
Two mechanisms widely used in the Software Product Lines (SPL) Engineering are the
feature model and the conditional compilation. The former models the variability in the …

An approach to safely evolve program families in c

F Medeiros - Proceedings of the companion publication of the 2014 …, 2014‏ - dl.acm.org
The C preprocessor is widely used to handle variability and solve portability issues in
program families. In this context, developers normally use tools like GCC and Clang …

The love/hate relationship with the C preprocessor: An interview study (artifact)

F Medeiros, C Kästner, M Ribeiro, S Nadi… - Dagstuhl Artifacts …, 2015‏ - drops.dagstuhl.de
This appendix presents detailed information about the research methods we used in the
study, subject characterization, grounded theory process that we followed strictly, and the …

Explainable, Security-Aware and Dependency-Aware Framework for Intelligent Software Refactoring

C Abid - 2021‏ - deepblue.lib.umich.edu
As software systems continue to grow in size and complexity, their maintenance continues to
become more challenging and costly. Even for the most technologically sophisticated and …

[PDF][PDF] Automated Refactoring of Rust Programs

PO Ringdal - 2020‏ - duo.uio.no
Refactoring is the practice of changing code without altering its behavior. Rust is a language
with an ownership model where lifetimes are statically resolved and it has macro support. In …

Safely evolving preprocessor-based configurable systems

F Medeiros - Proceedings of the 38th International Conference on …, 2016‏ - dl.acm.org
Since the 70s, the C preprocessor is still widely used in practice in a numbers of projects,
including Apache, Linux, and Libssh, to tailor systems to different platforms. To better …

Safely evolving configurable systems

F Medeiros - Companion Proceedings of the 2015 ACM SIGPLAN …, 2015‏ - dl.acm.org
Developers use configuration options to tailor systems to different platforms. This
configurability leads to exponential configuration spaces and traditional tools (eg, gcc) check …