Type checking annotation-based product lines

Christian Kästner, Sven Apel, Thomas Thüm, Gunter Saake
2012 ACM Transactions on Software Engineering and Methodology  
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
more » ... va calculus with feature annotations for product-line development and prove formally that all program variants generated from a well-typed product line are well-typed. Furthermore, we present a solution to the problem of typing mutually exclusive features. We discuss how results from our formalization helped implementing our own product-line tool CIDE for full Java and report of experience with detecting type errors in four existing software-product-line implementations.
doi:10.1145/2211616.2211617 fatcat:cfkghzoatbgf3l3sfw6qbuk7ve