2002
DOI: 10.1109/tse.2002.1158288
|View full text |Cite
|
Sign up to set email alerts
|

An empirical analysis of c preprocessor use

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
139
0

Year Published

2007
2007
2013
2013

Publication Types

Select...
5
2
1

Relationship

0
8

Authors

Journals

citations
Cited by 174 publications
(140 citation statements)
references
References 16 publications
1
139
0
Order By: Relevance
“…Such mistakes-and others like undeclared variables, unused variables, and null pointerscommonly occur when using conditional compilation. Indeed, despite their widespread usage to implement variabil- ity in SPLs, #ifdefs pollute the code, lack separation of concerns, and make maintenance tasks harder [8,20,21,27].…”
Section: Motivating Examplementioning
confidence: 99%
“…Such mistakes-and others like undeclared variables, unused variables, and null pointerscommonly occur when using conditional compilation. Indeed, despite their widespread usage to implement variabil- ity in SPLs, #ifdefs pollute the code, lack separation of concerns, and make maintenance tasks harder [8,20,21,27].…”
Section: Motivating Examplementioning
confidence: 99%
“…Numerous studies discuss the negative effect of preprocessor usage on code quality and maintainability (e.g., Spencer & Collyer (1992); Krone & Snelting (1994); Favre (1995Favre ( , 1997; Ernst et al (2002); Adams et al (2008)). However, researchers have also explored different strategies to deal with these problems.…”
Section: Related Workmentioning
confidence: 99%
“…Many researchers have attempted analysis and rewrite systems for unpreprocessed C code (Aversano et al, 2002;Hu et al, 2000;Overbey & Johnson, 2009;Vidacs et al, 2004;Tartler et al, 2011;Garrido & Johnson, 2005;Baxter & Mehlich, 2001;Livadas & Small, 1994). For example, Ernst et al (2002) identify problematic patterns and quantify them in a large code base, Tartler et al (2011) search for code blocks that are dead in all feature configurations, and Hu et al (2000) use control flow graphs to analyze the inclusion structure of files. However, all these approaches aim not directly at improving program comprehension by developers, but form underlying mechanisms and can be used to build tools.…”
Section: Related Workmentioning
confidence: 99%
“…Perhaps the most used macro system today is the C preprocessor. Ernst et al present an empirical study that demonstrates numerous violations of safety rules when using the C preprocessor [6]. Furthermore, code-generation based on concrete syntax is widely used in web applications.…”
Section: Language-agnostic Unsafe Macro Systemsmentioning
confidence: 99%
“…Well encapsulated but unsafe macro systems lead to buggy target code. Notably, the C preprocessor operates on tokens, is not guaranteed to produce correct code, and C programs with macros consequently contain numerous errors [6]. Safe but tightly-integrated macro systems are limited to a prescribed combination of host and target languages and cannot be shared across languages.…”
Section: Introductionmentioning
confidence: 99%