Virtual separation of concerns - A second chance for preprocessors

75Citations
Citations of this article
23Readers
Mendeley users who have this article in their library.

Abstract

Conditional compilation with preprocessors like cpp is a simple but eective means to implement variability. By annotating code fragments with #ifdef and #endif directives, dierent program variants with or without these fragments can be created, which can be used (among others) to implement software product lines. Although, preprocessors are frequently used in practice, they are often criticized for their negative eect on code quality and maintainability. In contrast to modularized implementations, for example using components or aspects, preprocessors neglect separation of concerns, are prone to introduce subtle errors, can entirely obfuscate the source code, and limit reuse. Our aim is to rehabilitate the preprocessor by showing how simple tool support can address these problems and emulate some benets of modularized implementations. At the same time we emphasize unique benets of preprocessors, like simplicity and language independence. Although we do not have a denitive answer on how to implement variability, we want highlight opportunities to improve preprocessors and encourage research toward novel preprocessor-based approaches. © JOT, 2009.

Cite

CITATION STYLE

APA

Kästner, C., & Apel, S. (2009). Virtual separation of concerns - A second chance for preprocessors. Journal of Object Technology, 8(6), 59–78. https://doi.org/10.5381/jot.2009.8.6.c5

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free