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...

Descripción completa

Detalles Bibliográficos
Autores principales: Dimovski, Aleksandar S., Apel, Sven, Legay, Axel
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