Compositional Type-Checking for Delta-oriented Programming
Ina Schaefer, Lorenzo Bettini, Ferruccio Damiani

Delta-oriented programming is a compositional approach to flexibly implement software product lines. A product line is represented by a code base and a product line declaration. The code base consists of a set of delta modules specifying modifications to object oriented programs. The product line declaration provides the connection of the delta modules with the product features. This separation increases the reusability of delta modules. In this paper, we provide a foundation for compositional type checking of delta-oriented product lines of JAVA programs by presenting a minimal core calculus for delta-oriented programming. The calculus is equipped with a constraint-based type system that allows analyzing each delta module in isolation, such that that also the results of the analysis can be reused. By combining the analysis results for the delta modules with the product line declaration it is possible the establish that all the products of the product line are well-typed according to the JAVA type system.