Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation 2012
DOI: 10.1145/2254064.2254103
|View full text |Cite
|
Sign up to set email alerts
|

SuperC

Abstract: C tools, such as source browsers, bug finders, and automated refactorings, need to process two languages: C itself and the preprocessor. The latter improves expressivity through file includes, macros, and static conditionals. But it operates only on tokens, making it hard to even parse both languages. This paper presents a complete, performant solution to this problem. First, a configurationpreserving preprocessor resolves includes and macros yet leaves static conditionals intact, thus preserving a program's v… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2

Citation Types

0
12
0

Year Published

2015
2015
2022
2022

Publication Types

Select...
4
3
1

Relationship

0
8

Authors

Journals

citations
Cited by 71 publications
(12 citation statements)
references
References 33 publications
0
12
0
Order By: Relevance
“…Illescas et al as well as Urli et al show di erent visualization models for feature combinations but without a connection to the source code [9,24]. Many works are based on the same extraction tools such as Feature-CoPP [12], SuperC [8], TypeChef [10], and Yacfe [21]. We are not aware of any tool that supports the presented use case satisfactorily.…”
Section: Related Workmentioning
confidence: 98%
“…Illescas et al as well as Urli et al show di erent visualization models for feature combinations but without a connection to the source code [9,24]. Many works are based on the same extraction tools such as Feature-CoPP [12], SuperC [8], TypeChef [10], and Yacfe [21]. We are not aware of any tool that supports the presented use case satisfactorily.…”
Section: Related Workmentioning
confidence: 98%
“…Different kinds of software analyses have been re-implemented to support product lines [27]. For example, the TypeChef project [16,18] implements variability aware parsers [18] and type checkers [16] for Java and C. The SuperC project [11] is another C language variability-aware parser. The Henshin [1] graph transformation engine was lifted to support product lines of graphs [24].…”
Section: Related Workmentioning
confidence: 99%
“…How to leverage this commonality and analyze the whole product line at once, bringing the total analysis time down, is a fundamental research problem at the intersection of Product Line Engineering and software analysis. Different attempts have been made to lift individual analyses to run on product lines [4,9,11,16,18,22,24]. Those attempts show significant time savings when the SPL is analyzed as a whole compared to brute-force analysis.…”
mentioning
confidence: 99%
“…They produce results for all variants at once in a single run by exploiting the similarities between the variants. Examples of successful family-based analysis tools are applied to syntax checking [25,20], type checking [24,8], static analysis [7,6], model checking [10,14], etc. Although they are more efficient than the brute-force approach, still their design and implementation for each particular analysis and language is tedious and error prone.…”
Section: Introductionmentioning
confidence: 99%
“…Furthermore, for each transformation we show the relation between the semantics of the input and output programs. Finally, we report on our experience with implementing and applying our transformations for a full-fledged language, C. The tool, called C Reconfigurator, uses variability-aware parser SuperC [20] for parsing C code with preprocessor annotations, then applies our variability rewrites thus producing a single C program as output. We evaluate our approach on real-world variability intensive C programs with real bugs.…”
Section: Introductionmentioning
confidence: 99%