Permission Inference for Array Programs

04/11/2018
by   Jérôme Dohrau, et al.
0

Information about the memory locations accessed by a program is, for instance, required for program parallelisation and program verification. Existing inference techniques for this information provide only partial solutions for the important class of array-manipulating programs. In this paper, we present a static analysis that infers the memory footprint of an array program in terms of permission pre- and postconditions as used, for example, in separation logic. This formulation allows our analysis to handle concurrent programs and produces specifications that can be used by verification tools. Our analysis expresses the permissions required by a loop via maximum expressions over the individual loop iterations. These maximum expressions are then solved by a novel maximum elimination algorithm, in the spirit of quantifier elimination. Our approach is sound and is implemented; an evaluation on existing benchmarks for memory safety of array programs demonstrates accurate results, even for programs with complex access patterns and nested loops.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/19/2022

Awaiting for Godot: Stateless Model Checking that Avoids Executions where Nothing Happens

Stateless Model Checking (SMC) is a verification technique for concurren...
research
11/13/2019

Compile-time Parallelization of Subscripted Subscript Patterns

An increasing number of scientific applications are making use of irregu...
research
07/08/2019

CHOP: Bypassing Runtime Bounds Checking Through Convex Hull OPtimization

Unsafe memory accesses in programs written using popular programming lan...
research
05/22/2019

A Quick Introduction to Functional Verification of Array-Intensive Programs

Array-intensive programs are often amenable to parallelization across ma...
research
12/24/2019

Aggressive Aggregation: a New Paradigm for Program Optimization

In this paper, we propose a new paradigm for program optimization which ...
research
04/17/2018

An iterative approach to precondition inference using constrained Horn clauses

We present a method for automatic inference of conditions on the initial...
research
07/17/2023

Maximum Flows in Parametric Graph Templates

Execution graphs of parallel loop programs exhibit a nested, repeating s...

Please sign up or login with your details

Forgot password? Click here to reset