Automatic and Efficient Variability-Aware Lifting of Functional Programs
Ramy Shahin, Marsha Chechik

TL;DR
This paper introduces two novel, efficient methods for transforming functional analysis programs into variability-aware versions, enabling scalable analysis of software product lines without enumerating all variants.
Contribution
It presents shallow and deep lifting techniques for transforming functional programs into variability-aware analyses, with correctness proofs and practical evaluation.
Findings
Deep lifting produces more efficient variability-aware analyses.
Shallow lifting is simpler but less optimized.
Approach successfully applied to BusyBox product line.
Abstract
A software analysis is a computer program that takes some representation of a software product as input and produces some useful information about that product as output. A software product line encompasses \emph{many} software product variants, and thus existing analyses can be applied to each of the product variations individually, but not to the entire product line as a whole. Enumerating all product variants and analyzing them one by one is usually intractable due to the combinatorial explosion of the number of product variants with respect to product line features. Several software analyses (e.g., type checkers, model checkers, data flow analyses) have been redesigned/re-implemented to support variability. This usually requires a lot of time and effort, and the variability-aware version of the analysis might have new errors/bugs that do not exist in the original one. Given an…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
