Constant propagation with conditional branches
ACM Transactions on Programming Languages and Systems (TOPLAS)
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
On the inference of configuration structures from source code
ICSE '94 Proceedings of the 16th international conference on Software engineering
Improving data-flow analysis with path profiles
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Predicated array data-flow analysis for run-time parallelization
ICS '98 Proceedings of the 12th international conference on Supercomputing
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Bebop: a path-sensitive interprocedural dataflow engine
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Software product lines: practices and patterns
Software product lines: practices and patterns
A unified approach to global program optimization
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Principles of Program Analysis
Principles of Program Analysis
An Empirical Analysis of C Preprocessor Use
IEEE Transactions on Software Engineering
Soot - a Java bytecode optimization framework
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
Software Product Line Engineering: Foundations, Principles and Techniques
Software Product Line Engineering: Foundations, Principles and Techniques
Evolving software product lines with aspects: an empirical study on design stability
Proceedings of the 30th international conference on Software engineering
Granularity in software product lines
Proceedings of the 30th international conference on Software engineering
Can we refactor conditional compilation into aspects?
Proceedings of the 8th ACM international conference on Aspect-oriented software development
Type-Checking Software Product Lines - A Formal Approach
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Configuration Lifting: Verification meets Software Configuration
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
An analysis of the variability in forty preprocessor-based software product lines
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Type safety for feature-oriented product lines
Automated Software Engineering
Emergent feature modularization
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Reducing configurations to monitor in a software product line
RV'10 Proceedings of the First international conference on Runtime verification
Reducing combinatorics in testing product lines
Proceedings of the tenth international conference on Aspect-oriented software development
Variability-aware parsing in the presence of lexical macros and conditional compilation
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Detection of feature interactions using feature-aware verification
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Emergo: a tool for improving maintainability of preprocessor-based product lines
Proceedings of the 11th annual international conference on Aspect-oriented Software Development Companion
Proceedings of the 7th Workshop on Programming Languages and Analysis for Security
Toward variability-aware testing
FOSD '12 Proceedings of the 4th International Workshop on Feature-Oriented Software Development
A variability-aware module system
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Feature-oriented software evolution
Proceedings of the Seventh International Workshop on Variability Modelling of Software-intensive Systems
Variability in software: state of the art and future directions
FASE'13 Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering
Scalable analysis of variable software
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
SPLLIFT: statically analyzing software product lines in minutes instead of years
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Product-line verification with feature-oriented contracts
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Extending Type Inference to Variational Programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program slicing to understand software generators
Proceedings of the 5th International Workshop on Feature-Oriented Software Development
An abstract representation of variational graphs
Proceedings of the 5th International Workshop on Feature-Oriented Software Development
Intraprocedural dataflow analysis for software product lines
Transactions on Aspect-Oriented Software Development X
Hi-index | 0.00 |
Software product lines (SPLs) are commonly developed using annotative approaches such as conditional compilation that come with an inherent risk of constructing erroneous products. For this reason, it is essential to be able to analyze SPLs. However, as dataflow analysis techniques are not able to deal with SPLs, developers must generate and analyze all valid methods individually, which is expensive for non-trivial SPLs. In this paper, we demonstrate how to take any standard intraprocedural dataflow analysis and automatically turn it into a feature-sensitive dataflow analysis in three different ways. All are capable of analyzing all valid methods of an SPL without having to generate all of them explicitly. We have implemented all analyses as extensions of SOOT's intraprocedural dataflow analysis framework and experimentally evaluated their performance and memory characteristics on four qualitatively different SPLs. The results indicate that the feature-sensitive analyses are on average 5.6 times faster than the brute force approach on our SPLs, and that they have different time and space tradeoffs.