2012
DOI: 10.1145/2211616.2211617
|View full text |Cite
|
Sign up to set email alerts
|

Type checking annotation-based product lines

Abstract: Software-product-line engineering is an efficient means to generate a family of program variants for a domain from a single code base. However, because of the potentially high number of possible program variants, it is difficult to test them all and ensure properties like type safety for the entire product line. We present a product-line-aware type system that can type check an entire software product line without generating each variant in isolation. Specifically, we extend the Featherweight Java calculus wit… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
138
0

Year Published

2014
2014
2021
2021

Publication Types

Select...
4
3

Relationship

1
6

Authors

Journals

citations
Cited by 148 publications
(138 citation statements)
references
References 74 publications
(82 reference statements)
0
138
0
Order By: Relevance
“…A simple approach to do this is to analyze every single possible configuration to find which ones contain errors. To avoid such an intractable brute-force approach and to avoid incompleteness from sampling strategies, we build on our recent research infrastructure, TypeChef, to analyze the entire configuration space of C code with build-time variability at once [27]- [29].…”
Section: Extracting Code Constraintsmentioning
confidence: 99%
See 1 more Smart Citation
“…A simple approach to do this is to analyze every single possible configuration to find which ones contain errors. To avoid such an intractable brute-force approach and to avoid incompleteness from sampling strategies, we build on our recent research infrastructure, TypeChef, to analyze the entire configuration space of C code with build-time variability at once [27]- [29].…”
Section: Extracting Code Constraintsmentioning
confidence: 99%
“…This variability-aware analysis is conceptually sound and complete with regard to a brute-force approach of preprocessing, parsing, and type checking all configurations separately. However, it is much faster since it does the analysis in a single step and exploits similarities among the implementations of different configurations; see [27]- [29] for further details.…”
Section: Extracting Code Constraintsmentioning
confidence: 99%
“…We have already implemented such variability-aware type systems for Java and C in prior work (and, for a subset, formally proved that it ensures well-typedness for all variants of the product line) [31], [36]. For variability mining, we reimplemented these checks as recommendation mechanism.…”
Section: Type Systemmentioning
confidence: 99%
“…For such cases, we adjusted the type system's lookup functions and check implications between the variability model and annotations using a SAT solver. To understand the recommendation mechanism, the simple model described here is sufficient; for details, we refer the interested reader to our formal discussions in [31].…”
Section: Type Systemmentioning
confidence: 99%
“…Lifting has been applied to model checking [8], type checking [19], testing [20], etc. Our work fits in this category, focusing on lifting transformations.…”
Section: Related Workmentioning
confidence: 99%