Research output: Contribution in Book/Report/Proceedings - With ISBN/ISSN › Conference contribution/Paper › peer-review
Research output: Contribution in Book/Report/Proceedings - With ISBN/ISSN › Conference contribution/Paper › peer-review
}
TY - GEN
T1 - SPLLIFT: statically analyzing software product lines in minutes instead of years
AU - Bodden, Eric
AU - Tolêdo, Társis
AU - Ribeiro, Márcio
AU - Brabrand, Claus
AU - Borba, Paulo
AU - Mezini, Mira
PY - 2013
Y1 - 2013
N2 - 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.
AB - 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.
KW - context sensitive
KW - flow sensitive
KW - inter-procedural static analysis
KW - software product lines
UR - http://www.scopus.com/inward/record.url?scp=84883087403&partnerID=8YFLogxK
U2 - 10.1145/2491956.2491976
DO - 10.1145/2491956.2491976
M3 - Conference contribution/Paper
SN - 978-1-4503-2014-6
SP - 355
EP - 364
BT - Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation (PLDI 2013)
PB - ACM
CY - New York, NY, USA
T2 - PLDI 2013 34th ACM SIGPLAN conference on Programming language design and implementation
Y2 - 16 June 2013 through 22 June 2013
ER -