Home

About

Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network
FAQHELPSITE MAPCONTACT US


  Advanced Search  

 
Type Checking Annotation-Based Product Lines CHRISTIAN KSTNER, Philipps University Marburg
 

Summary: A
Type Checking Annotation-Based Product Lines
CHRISTIAN KÄSTNER, Philipps University Marburg
SVEN APEL, University of Passau
THOMAS THÜM and GUNTER SAAKE, University of Magdeburg
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 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.
Categories and Subject Descriptors: D.3.1 [Programming Languages]: Formal Definitions and Theory; D.2.13 [Software
Engineering]: Reusable Software; D.3.4 [Programming Languages]: Processors--Preprocessors; D.2.3 [Software Engi-
neering]: Coding Tools and Techniques--Program editors
General Terms: Languages, Theory, Design
Additional Key Words and Phrases: CFJ, CIDE, conditional compilation, Featherweight Java, #ifdef, software product lines,
type system
1. INTRODUCTION

  

Source: Apel, Sven - Fakultät für Informatik und Mathematik, Universität Passau

 

Collections: Computer Technologies and Information Sciences