Title
Does the discipline of preprocessor annotations matter?: a controlled experiment
Abstract
The C preprocessor (CPP) is a simple and language-independent tool, widely used to implement variable software systems using conditional compilation (i.e., by including or excluding annotated code). Although CPP provides powerful means to express variability, it has been criticized for allowing arbitrary annotations that break the underlying structure of the source code. We distinguish between disciplined annotations, which align with the structure of the source code, and undisciplined annotations, which do not. Several studies suggest that especially the latter type of annotations makes it hard to (automatically) analyze the code. However, little is known about whether the type of annotations has an effect on program comprehension. We address this issue by means of a controlled experiment with human subjects. We designed similar tasks for both, disciplined and undisciplined annotations, to measure program comprehension. Then, we measured the performance of the subjects regarding correctness and response time for solving the tasks. Our results suggest that there are no differences between disciplined and undisciplined annotations from a program-comprehension perspective. Nevertheless, we observed that finding and correcting errors is a time-consuming and tedious task in the presence of preprocessor annotations.
Year
DOI
Venue
2013
10.1145/2517208.2517215
GPCE
Keywords
Field
DocType
controlled experiment,latter type,c preprocessor,program comprehension,preprocessor annotation,disciplined annotation,arbitrary annotation,source code,undisciplined annotation,underlying structure,annotated code,preprocessor annotations matter,variability
Programming language,Computer science,Source code,Correctness,Response time,Theoretical computer science,Software system,Preprocessor,Controlled experiment,Conditional compilation,Program comprehension
Conference
Volume
Issue
ISSN
49
3
0362-1340
Citations 
PageRank 
References 
6
0.42
22
Authors
4
Name
Order
Citations
PageRank
Sandro Schulze125923.43
Jörg Liebig249317.26
Janet Siegmund333827.69
Sven Apel43980184.13