(Enter summary)
Abstract: This is the first empirical study of the use of the C macro preprocessor, Cpp. To determine how the preprocessor is used in
practice, this paper analyzes 26 packages comprising 1.4 million lines of publicly available C code. We determine the incidence of
C preprocessor usage---whether in macro definitions, macro uses, or dependences upon macros---that is complex, potentially
problematic, or inexpressible in terms of other C or C++ language features. We taxonomize these various aspects of... (Update)
Cited by: More
Global Analysis and Transformations in Preprocessed Languages - Spinellis (2003)
(Correct)
Columbus Schema for C/C++ Preprocessing - Vidacs, Beszedes, Ferenc
(Correct)
Opening Up The C/C++ - Preprocessor Black Box
(Correct)
Similar documents (at the sentence level):
66.2%: An Empirical Analysis of C Preprocessor Use - Ernst, Badros, Notkin (2002)
(Correct)
Active bibliography (related documents): More All
0.5: Reverse-Engineering and Configuration Management: Concepts and.. - team (1996)
(Correct)
0.3: Geometric Computing with CGAL and LEDA - Kurt Mehlhorn And
(Correct)
0.3: The CPP paradox - Favre (1995)
(Correct)
Related documents from co-citation: More All
3: Programming Language (context) - Stroustrup, The - 1986
2: or portability experience with C News (context) - Spencer, Collyer et al. - 1992
2: Reference Manual (context) - Ellis, Barnestroup - 1990
BibTeX entry: (Update)
Ernst, M., G.J. Badros, and D. Notkin (1997). An Empirical analysis of C Preprocessor Use. Technical Report UW-CSE-97-04-06, Department of Computer Science and Engineering, University of Washington. http://citeseer.ist.psu.edu/ernst02empirical.html More
@techreport{ ernst97empirical,
author = "M. Ernst and G. J. Badros and D. Notkin",
title = "An Empirical Analysis of {C} Preprocessor Use",
number = "TR-97-04-06",
year = "1997",
url = "citeseer.ist.psu.edu/ernst02empirical.html" }
Citations (may not include all citations):
484
Common Lisp: The Language (context) - Jr - 1990
476
Programming Language (context) - Kernighan, Ritchie - 1988
423
The Art of the Metaobject Protocol (context) - Kiczales, Rivie et al. - 1991
296
Free Software Foundation (context) - Stallman, Porting et al. - 1996
296
Free Software Foundation (context) - Stallman, Manual et al. - 1994
217
Human Behavior and the Principle of Least Effort (context) - Zipf - 1949
135
Object Oriented Programming: An Evolutionary Approach (context) - Cox, Novobilski - 1991
68
Hygienic Macro Expansion (context) - Kohlbecker, Friedman et al. - 1986
63
LCLint: A Tool for Using Specifications to Check Code
- Evans, Guttag et al. - 1994
62
A Framework for Source Code Search Using Program Patterns
- Paul, Prakash - 1994
50
The Design and Evolution of C (context) - Stroustrup - 1994
47
An Empirical Study of Static Call Graph Extractors
- Murphy, Notkin et al. - 1996
40
the Inference of Configuration Structures from Source Code
- Krone, Snelting - 1994
38
Programmable Syntax Macros
- Weise, Crew - 1993
29
A Reference Manual (context) - Harbison, Jr - 1995
28
An Interactive High-Level Debugger for ControlFlow Optimized.. (context) - Zellweger - 1983
15
LCLint User's Guide (context) - Evans - 1996
15
Program Generalization for Software Reuse: From C to C
- Siff, Reps - 1996
15
Understanding Code Containing Preprocessor Constructs
- Livadas, Small - 1994
14
Style and Coding Standards (context) - Cannon, Elliott et al. - 1990
13
Lint, a C Program Checker
- Johnson - 1977
11
Preprocessors from an Abstract Point of View (context) - Favre - 1996
9
Using Partial Evaluation in Support of Portability, Reusabil.. (context) - Salomon - 1996
8
Using Version Control Data to Evaluate the Impact of Softwar..
- Atkins, Ball et al. - 1999
6
A Framework for Preprocessor-Aware C Source Code Analyses
- Badros, Notkin - 2000
5
Notes on Writing Portable Programs in C
- Dolenc, Keppel et al. - 1990
5
Static Detection of Preprocessor Macro Errors in C (context) - Spuler, Sajeev - 1992
4
Scwm Reference Manual: The Authoritative Guide to the Emacs .. (context) - Stachowiak, Badros - 1999
4
Preprocessor Manual (context) - Project - 1996
4
The Revised 5 Report on the Algorithmic Language Scheme (context) - Kelsey, Clinger et al. - 1998
4
GNU Coding Standards (context) - Stallman - 1997
3
ifdef Considered Harmful, or Portability Experience with C N.. (context) - Spencer, Collyer - 1992
3
Designing and Coding Reusable C (context) - Carroll, Ellis - 1995
2
ghostscript distribution from Aladdin Enterprises (context) - Deutsch, knr - 1990
2
Fast, Flexible Syntactic Pattern Matching and Processing
- Griswold, Atkinson et al. - 1996
2
Programming in C++: Rules and Recommendations (context) - Systems - 1992
2
Examining C++ Program Analyzers (context) - Meyers, Klaus - 1997
2
Metrics Collection Tools for C and C++ Source Code (context) - Lott - 1998
2
Comparison of Subjective Entropy and User Estimates of Softw.. (context) - Davis, Davis et al. - 1990
2
PC-lint/FlexeLint (context) - Software - 1999
Documents on the same site (http://pag.csail.mit.edu/pubs/Michael-D-Ernst.html): More
Quickly Detecting Relevant Program Invariants - Ernst, Czeisler, Griswold.. (1999)
(Correct)
Dynamically Discovering Likely Program Invariants - Ernst (2000)
(Correct)
Static verification of dynamically detected program.. - Nimmer, Ernst (2001)
(Correct)
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC