The Love/Hate Relationship with the C Preprocessor: An Interview Study (Artifact)

Authors Flávio Medeiros, Christian Kästner, Márcio Ribeiro, Sarah Nadi, Rohit Gheyi

Thumbnail PDF

Artifact Description

  • Filesize: 0.7 MB
  • 32 pages

Document Identifiers

Author Details

Flávio Medeiros
Christian Kästner
Márcio Ribeiro
Sarah Nadi
Rohit Gheyi

Cite AsGet BibTex

Flávio Medeiros, Christian Kästner, Márcio Ribeiro, Sarah Nadi, and Rohit Gheyi. The Love/Hate Relationship with the C Preprocessor: An Interview Study (Artifact). In Special Issue of the 29th European Conference on Object-Oriented Programming (ECOOP 2015). Dagstuhl Artifacts Series (DARTS), Volume 1, Issue 1, pp. 7:1-7:32, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2015)


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 survey we performed in the study. It provides helpful data for understanding the subtler points of the companion paper and for reproducibility.
  • C Preprocessor
  • CPP
  • Interviews
  • Surveys
  • and Grounded Theory


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Steve Adolph, Wendy Hall, and Philippe Kruchten. Using grounded theory to study the experience of software development. Empirical Software Engineering, 16(4), 2011. Google Scholar
  2. Ira Baxter and Michael Mehlich. Preprocessor conditional removal by simple partial evaluation. In Procedings of the Working Conference on Reverse Engineering, WCRE. IEEE, 2001. Google Scholar
  3. JulietM Corbin and Anselm Strauss. Grounded theory research: Procedures, canons, and evaluative criteria. Qualitative Sociology, 13(1), 1990. Google Scholar
  4. Don A. Dillman, Jolene D. Smyth, and Leah Melani Christian. Internet, Phone, Mail, and Mixed-Mode Surveys: The Tailored Design Method. Wiley, 2014. Google Scholar
  5. Michael Ernst, Greg Badros, and David Notkin. An empirical analysis of C preprocessor use. IEEE Transactions on Software Engineering, 28(12), 2002. Google Scholar
  6. Uwe Flick. An Introduction to Qualitative Research. SAGE Publications, 2014. Google Scholar
  7. Alejandra Garrido and Ralph Johnson. Analyzing multiple configurations of a C program. In Proceedings of the International Conference on Software Maintenance, ICSM. IEEE, 2005. Google Scholar
  8. Christian Kästner, Paolo Giarrusso, Tillmann Rendel, Sebastian Erdweg, Klaus Ostermann, and Thorsten Berger. Variability-aware parsing in the presence of lexical macros and conditional compilation. In Proceedings of the Object-Oriented Programming Systems Languages and Applications, OOPSLA. ACM, 2011. Google Scholar
  9. Steinar Kvale. InterViews: An Introduction to Qualitative Research Interviewing. SAGE Publications, 1996. Google Scholar
  10. Jörg Liebig, Sven Apel, Christian Lengauer, Christian Kästner, and Michael Schulze. An analysis of the variability in forty preprocessor-based software product lines. In Proceedings of International Conference on Software Engineering, ICSE. ACM, 2010. Google Scholar
  11. Jörg Liebig, Christian Kästner, and Sven Apel. Analyzing the discipline of preprocessor annotations in 30 million lines of C code. In Proceedings of the International Conference on Aspect-Oriented Software Development, AOSD. ACM, 2011. Google Scholar
  12. Flávio Medeiros, Márcio Ribeiro, Rohit Gheyi, and Baldoino Fonseca. A catalogue of refactorings to remove incomplete annotations. Journal of Universal Computer Science, 2014. Google Scholar
  13. Henry Spencer and Geoff Collyer. \#ifdef considered harmful, or portability experience with C news. In USENIX Annual Technical Conference, 1992. Google Scholar