Cargando…
A Decision Tree Lifted Domain for Analyzing Program Families with Numerical Features
Lifted (family-based) static analysis by abstract interpretation is capable of analyzing all variants of a program family simultaneously, in a single run without generating any of the variants explicitly. The elements of the underlying lifted analysis domain are tuples, which maintain one property p...
Autores principales: | , , |
---|---|
Formato: | Online Artículo Texto |
Lenguaje: | English |
Publicado: |
2021
|
Materias: | |
Acceso en línea: | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7978791/ http://dx.doi.org/10.1007/978-3-030-71500-7_4 |
_version_ | 1783667226209943552 |
---|---|
author | Dimovski, Aleksandar S. Apel, Sven Legay, Axel |
author_facet | Dimovski, Aleksandar S. Apel, Sven Legay, Axel |
author_sort | Dimovski, Aleksandar S. |
collection | PubMed |
description | Lifted (family-based) static analysis by abstract interpretation is capable of analyzing all variants of a program family simultaneously, in a single run without generating any of the variants explicitly. The elements of the underlying lifted analysis domain are tuples, which maintain one property per variant. Still, explicit property enumeration in tuples, one by one for all variants, immediately yields combinatorial explosion. This is particularly apparent in the case of program families that, apart from Boolean features, contain also numerical features with large domains, thus giving rise to astronomical configuration spaces. The key for an efficient lifted analysis is a proper handling of variability-specific constructs of the language (e.g., feature-based runtime tests and [Formula: see text] directives). In this work, we introduce a new symbolic representation of the lifted abstract domain that can efficiently analyze program families with numerical features. This makes sharing between property elements corresponding to different variants explicitly possible. The elements of the new lifted domain are constraint-based decision trees, where decision nodes are labeled with linear constraints defined over numerical features and the leaf nodes belong to an existing single-program analysis domain. To illustrate the potential of this representation, we have implemented an experimental lifted static analyzer, called SPLNum [Formula: see text] Analyzer, for inferring invariants of C programs. An empirical evaluation on BusyBox and on benchmarks from SV-COMP yields promising preliminary results indicating that our decision trees-based approach is effective and outperforms the baseline tuple-based approach. |
format | Online Article Text |
id | pubmed-7978791 |
institution | National Center for Biotechnology Information |
language | English |
publishDate | 2021 |
record_format | MEDLINE/PubMed |
spelling | pubmed-79787912021-03-23 A Decision Tree Lifted Domain for Analyzing Program Families with Numerical Features Dimovski, Aleksandar S. Apel, Sven Legay, Axel Fundamental Approaches to Software Engineering Article Lifted (family-based) static analysis by abstract interpretation is capable of analyzing all variants of a program family simultaneously, in a single run without generating any of the variants explicitly. The elements of the underlying lifted analysis domain are tuples, which maintain one property per variant. Still, explicit property enumeration in tuples, one by one for all variants, immediately yields combinatorial explosion. This is particularly apparent in the case of program families that, apart from Boolean features, contain also numerical features with large domains, thus giving rise to astronomical configuration spaces. The key for an efficient lifted analysis is a proper handling of variability-specific constructs of the language (e.g., feature-based runtime tests and [Formula: see text] directives). In this work, we introduce a new symbolic representation of the lifted abstract domain that can efficiently analyze program families with numerical features. This makes sharing between property elements corresponding to different variants explicitly possible. The elements of the new lifted domain are constraint-based decision trees, where decision nodes are labeled with linear constraints defined over numerical features and the leaf nodes belong to an existing single-program analysis domain. To illustrate the potential of this representation, we have implemented an experimental lifted static analyzer, called SPLNum [Formula: see text] Analyzer, for inferring invariants of C programs. An empirical evaluation on BusyBox and on benchmarks from SV-COMP yields promising preliminary results indicating that our decision trees-based approach is effective and outperforms the baseline tuple-based approach. 2021-02-24 /pmc/articles/PMC7978791/ http://dx.doi.org/10.1007/978-3-030-71500-7_4 Text en © The Author(s) 2021 Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made. The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. |
spellingShingle | Article Dimovski, Aleksandar S. Apel, Sven Legay, Axel A Decision Tree Lifted Domain for Analyzing Program Families with Numerical Features |
title | A Decision Tree Lifted Domain for Analyzing Program Families with Numerical Features |
title_full | A Decision Tree Lifted Domain for Analyzing Program Families with Numerical Features |
title_fullStr | A Decision Tree Lifted Domain for Analyzing Program Families with Numerical Features |
title_full_unstemmed | A Decision Tree Lifted Domain for Analyzing Program Families with Numerical Features |
title_short | A Decision Tree Lifted Domain for Analyzing Program Families with Numerical Features |
title_sort | decision tree lifted domain for analyzing program families with numerical features |
topic | Article |
url | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7978791/ http://dx.doi.org/10.1007/978-3-030-71500-7_4 |
work_keys_str_mv | AT dimovskialeksandars adecisiontreelifteddomainforanalyzingprogramfamilieswithnumericalfeatures AT apelsven adecisiontreelifteddomainforanalyzingprogramfamilieswithnumericalfeatures AT legayaxel adecisiontreelifteddomainforanalyzingprogramfamilieswithnumericalfeatures AT dimovskialeksandars decisiontreelifteddomainforanalyzingprogramfamilieswithnumericalfeatures AT apelsven decisiontreelifteddomainforanalyzingprogramfamilieswithnumericalfeatures AT legayaxel decisiontreelifteddomainforanalyzingprogramfamilieswithnumericalfeatures |