Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering 2014
DOI: 10.1145/2635868.2635908
|View full text |Cite
|
Sign up to set email alerts
|

A foundation for refactoring C with macros

Abstract: This paper establishes the concept of preprocessor dependences as a foundation for building automated refactoring tools that transform source code containing lexical macros and conditional compilation directives, such as those provided by the C preprocessor (CPP). We define a preprocessor dependence graph (PPDG) that models the relationships among macro definitions, macro invocations, and conditional compilation directives in a file-the relationships that must be maintained for the semantics of the C preproces… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2

Citation Types

0
2
0

Year Published

2015
2015
2019
2019

Publication Types

Select...
4
1

Relationship

0
5

Authors

Journals

citations
Cited by 5 publications
(2 citation statements)
references
References 28 publications
(33 reference statements)
0
2
0
Order By: Relevance
“…Most approaches [10,12,39,41] try to find a suitable model that represent both the C program and the preprocessor directives. A recent approach [33] suggests an alternative: perform refactoring on one variant and prevent the refactoring if problems may be caused in other variants. This is based on the observation that changes on one variant seldom causes problems in other variant.…”
Section: Analyzing and Editing Unpreprocessed C Codementioning
confidence: 99%
See 1 more Smart Citation
“…Most approaches [10,12,39,41] try to find a suitable model that represent both the C program and the preprocessor directives. A recent approach [33] suggests an alternative: perform refactoring on one variant and prevent the refactoring if problems may be caused in other variants. This is based on the observation that changes on one variant seldom causes problems in other variant.…”
Section: Analyzing and Editing Unpreprocessed C Codementioning
confidence: 99%
“…In the future we may combine our approach with these approaches to deal with multiple variants. However, handling only one variant is already useful in many cases: (1) many programs, though with conditional compilation, do not have many variants; (2) as revealed by Overbey et al [33], changes in one variant often do not cause problems in other variants.…”
Section: Analyzing and Editing Unpreprocessed C Codementioning
confidence: 99%