Abstract
A software product line (SPL) encodes a potentially large variety
of software products as variants of some common code base. Up
until now, re-using traditional static analyses for SPLs was virtually intractable, as it required programmers to generate and analyze
all products individually. In this work, however, we show how an
important class of existing inter-procedural static analyses can be
transparently lifted to SPLs. Without requiring programmers to
change a single line of code, our approach SPLLIFT automatically
converts any analysis formulated for traditional programs within the
popular IFDS framework for inter-procedural, finite, distributive,
subset problems to an SPL-aware analysis formulated in the IDE
framework, a well-known extension to IFDS. Using a full implementation based on Heros, Soot, CIDE and JavaBDD, we show that
with SPLLIFT one can reuse IFDS-based analyses without changing a single line of code. Through experiments using three static
analyses applied to four Java-based product lines, we were able to
show that our approach produces correct results and outperforms
the traditional approach by several orders of magnitude.
Original language | English |
---|---|
Journal | A C M / S I G P L A N Notices |
Volume | 48 |
Issue number | 6 |
Pages (from-to) | 355-364 |
Number of pages | 10 |
ISSN | 1523-2867 |
DOIs | |
Publication status | Published - Jun 2013 |
Event | ACM SIGPLAN Conference on Programming language design and implementation - http://pldi2013.ucombinator.org/, Seattle, WA, United States Duration: 16 Jun 2013 → 22 Jun 2013 Conference number: 34 http://pldi2013.ucombinator.org/ |
Conference
Conference | ACM SIGPLAN Conference on Programming language design and implementation |
---|---|
Number | 34 |
Location | http://pldi2013.ucombinator.org/ |
Country/Territory | United States |
City | Seattle, WA |
Period | 16/06/2013 → 22/06/2013 |
Internet address |
Keywords
- Software product lines
- inter-procedural static analysis
- context sensitive
- flow sensitive