Feature Featherweight Java: A Calculus for Feature-Oriented Programming and Stepwise Refinement

kaestner@cs.cmu.edu (S. Apel, C. Kästner, C. Lengauer)
Fri, 10 Jan 2025 13:48:21 GMT

Sven Apel, Christian Kästner, and Christian Lengauer. Feature Featherweight Java: A Calculus for Feature-Oriented Programming and Stepwise Refinement. In Proceedings of the 7th ACM International Conference on Generative Programming and Component Engineering (GPCE), ISBN 978-1-60558-267-2, pages 101--112, New York, NY: ACM Press, August 2008.

Feature-oriented programming (FOP) is a paradigm that incorporates programming language technology, program generation techniques, and stepwise refinement. In their GPCE'07 paper, Thaker et al. suggest the development of a type system for FOP to guarantee safe feature composition, i.e, to guarantee the absence of type errors during feature composition. We present such a type system along with a calculus for a simple feature-oriented, Java-like language, called Feature Featherweight Java (FFJ). Furthermore, we explore four extensions of FFJ and how they affect type soundness.