A Decision Tree Lifted Domain for Analyzing Program Families with Numerical Features (Extended Version)

12/10/2020
by   Aleksandar S. Dimovski, et al.
0

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 big domains, thus admitting astronomic configuration spaces. The key for an efficient lifted analysis is proper handling of variability-specific constructs of the language (e.g., feature-based runtime tests and #if 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^2Analyzer, for inferring invariants of C programs. It uses existing numerical domains (e.g., intervals, octagons, polyhedra) from the APRON library as parameters. An empirical evaluation on benchmarks from SV-COMP and BusyBox yields promising preliminary results indicating that our decision trees-based approach is effective and outperforms the tuple-based approach, which is used as a baseline lifted analysis based on abstract interpretation.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/18/2021

Yet Another Representation of Binary Decision Trees: A Mathematical Demonstration

A decision tree looks like a simple computational graph without cycles, ...
research
07/06/2020

Certifying Decision Trees Against Evasion Attacks by Program Analysis

Machine learning has proved invaluable for a range of different tasks, y...
research
12/28/2017

Abstract Interpretation using a Language of Symbolic Approximation

The traditional abstract domain framework for imperative programs suffer...
research
05/30/2022

Data-driven Numerical Invariant Synthesis with Automatic Generation of Attributes

We propose a data-driven algorithm for numerical invariant synthesis and...
research
01/13/2022

Exact learning for infinite families of concepts

In this paper, based on results of exact learning, test theory, and roug...
research
04/27/2023

Identifying Minimal Changes in the Zone Abstract Domain

Verification techniques express program states as logical formulas over ...
research
04/07/2020

Offsite Autotuning Approach – Performance Model Driven Autotuning Applied to Parallel Explicit ODE Methods

Autotuning techniques are a promising approach to minimize the otherwise...

Please sign up or login with your details

Forgot password? Click here to reset