Systematic Derivation of Static Analyses for Software Product Lines
TR-2014-170, Authors: Jan Midtgaard, Claus Brabrand & Andrzej Wasowski.
Systematic Derivation of Static Analyses for Software Product Lines
Jan Midtgaard
Claus Brabrand
Andrzej Wasowski
March 2014
Abstract
A recent line of work lifts particular verification and analysis methods to Software Product Lines (SPL). In an effort to generalize such case-by-case approaches, we develop a systematic methodology for lifting program analyses to SPLs using abstract interpretation. Abstract interpretation is a classical framework for deriving static analyses in a compositional, step-by-step manner. We show how to take an analysis expressed as an abstract interpretation and lift each of the abstract interpretation steps to a family of programs. This includes schemes for lifting domain types, and combinators for lifting analyses and Galois connections. We prove that for analyses developed using our method, the soundness of lifting follows by construction. Finally, we discuss approximating variability in an analysis and we derive variational data-flow equations for an example analysis, a constant propagation analysis for a simple imperative language.
Categories and Subject Descriptors D.2.4 [Software Engineering]: Software/Program Verification; F.3.2 [Theory of Computation]: Semantics of Programming Languages —Program Analysis
General Terms Languages, Theory, Verification
Keywords Software Product Lines, Verification, Static Analysis, Abstract Interpretation
Technical report TR-2014-170 in IT University Technical Report Series, March 2014.
Available as PDF.