Lifted Static Analysis of Dynamic Program Families by Abstract Interpretation
Fri 16 Jul 2021 02:40 - 03:00 at ECOOP 1 - Program Analysis / Runtimes (time band 2) Chair(s): Werner Dietl
Program families (software product lines) are increasingly adopted by industry for building families of related software systems. A program family offers a set of features (configured options) to control the presence and absence of software functionality. Features in program families are often assigned at compile-time, so their values can only be read at run-time. However, today many program families and application domains demand run-time adaptation, reconfiguration, and post-deployment tuning. Dynamic program families (dynamic software product lines) have emerged as an attempt to handle variability at run-time. Features in dynamic program families can be controlled by ordinary program variables, so reads and writes to them may happen at run-time.
Recently, a decision tree lifted domain for analyzing traditional program families with numerical features has been proposed, in which decision nodes contain linear constraints defined over numerical features and leaf nodes contain analysis properties defined over program variables. Decision nodes partition the configuration space of possible feature values, while leaf nodes provide analysis information corresponding to each partition of the configuration space. As features are statically assigned at compile-time, decision nodes can be added, modified, and deleted only when analyzing read accesses of features. In this work, we extend the decision tree lifted domain so that it can be used to efficiently analyze dynamic program families with numerical features. Since features can now be changed at run-time, decision nodes can be modified when handling read and write accesses of feature variables. For this purpose, we define extended transfer functions for assignments and tests as well as a special widening operator to ensure termination of the lifted analysis. To illustrate the potential of this approach, we have implemented an experimental lifted static analyzer, called DSPLNUM2Analyzer, for inferring numerical invariants of dynamic program families written in C. An empirical evaluation on benchmarks from SV-COMP indicates that our tool is effective and provides a flexible way of adjusting the precision/cost ratio in static analysis of dynamic program families.
Thu 15 JulDisplayed time zone: Brussels, Copenhagen, Madrid, Paris change
19:00 - 20:00 | Program Analysis (time band 1)ECOOP Technical Papers at ECOOP 1 Chair(s): Uday P. Khedker Indian Institute of Technology (IIT) Bombay | ||
19:00 20mTalk | Lossless, Persisted Summarization of Static Callgraph, Points-To and Data-Flow AnalysisDistinguished Paper ECOOP Technical Papers Philipp Dominik Schubert Heinz Nixdorf Institut, Paderborn University, Ben Hermann Technical University Dortmund, Eric Bodden University of Paderborn; Fraunhofer IEM Link to publication DOI Pre-print Media Attached | ||
19:20 20mTalk | Lifted Static Analysis of Dynamic Program Families by Abstract Interpretation ECOOP Technical Papers DOI | ||
19:40 20mTalk | Gradual Program Analysis for Null Pointers ECOOP Technical Papers Sam Estep Carnegie Mellon University, Jenna DiVincenzo (Wise) Carnegie Mellon University, Jonathan Aldrich Carnegie Mellon University, Éric Tanter University of Chile, Johannes Bader Jane Street, Joshua Sunshine Carnegie Mellon University DOI Pre-print Media Attached File Attached |
Fri 16 JulDisplayed time zone: Brussels, Copenhagen, Madrid, Paris change
02:00 - 03:20 | Program Analysis / Runtimes (time band 2)ECOOP Technical Papers at ECOOP 1 Chair(s): Werner Dietl University of Waterloo | ||
02:00 20mTalk | Gradual Program Analysis for Null Pointers ECOOP Technical Papers Sam Estep Carnegie Mellon University, Jenna DiVincenzo (Wise) Carnegie Mellon University, Jonathan Aldrich Carnegie Mellon University, Éric Tanter University of Chile, Johannes Bader Jane Street, Joshua Sunshine Carnegie Mellon University DOI Pre-print Media Attached File Attached | ||
02:20 20mTalk | Best-Effort Lazy Evaluation for Python Software Built On APIs ECOOP Technical Papers DOI | ||
02:40 20mTalk | Lifted Static Analysis of Dynamic Program Families by Abstract Interpretation ECOOP Technical Papers DOI | ||
03:00 20mTalk | Accelerating Object-Sensitive Pointer Analysis by Exploiting Object Containment and Reachability ECOOP Technical Papers Dongjie He University of New South Wales, Jingbo Lu UNSW Sydney, Yaoqing Gao Huawei Canada, Jingling Xue UNSW DOI Pre-print |