A Stricter Heap Separating Points-To Logic

06/26/2019
by   René Haberland, et al.
0

Dynamic memory issues are hard to locate and may cost much of a development project's efforts and was repeatedly reported similarly afterwards independently by different persons. Verification as one formal method may proof a given program's heap matches a specified dynamic behaviour. Dynamic (or heap) memory, is the region within main memory that is manipulated by program statements like alloc, free and pointer manipulation during program execution. Usually, heap memory is allocated for problems where the amount of used memory is unknown prior to execution. Regions within the heap may be related "somehow" with each other, often, but not always, by pointers containing absolute addresses of related heap cells. The data structure described by all valid pointer variables manifests heap graphs. A heap graph is a directed connected simple graph within the dynamic memory which may contain cycles, and where each vertex represents an unique memory address and every edge links two heap vertices. The heap graph must be pointed by at least one variable from the local stack or a chain of other heap graphs which is finally pointed by at least one stacked variable. Heap vertices may not overlap. A heap formula expresses the assertion on dynamic memory and can either be a heaplet, or a recursively defined heap-spatial or logical formula.

READ FULL TEXT

page 1

page 2

research
04/04/2021

A Logical Programming Language as an Instrument for Specifying and Verifying Dynamic Memory

This work proposes a Prolog-dialect for the found and prioritised proble...
research
05/30/2019

A Non-repetitive Logic for Verification of Dynamic Memory with Explicit Heap Conjunction and Disjunction

In this paper, we review existing points-to Separation Logics for dynami...
research
03/22/2019

SLING: Using Dynamic Analysis to Infer Program Invariants in Separation Logic

We introduce a new dynamic analysis technique to discover invariants in ...
research
08/04/2022

Designing and developing tools to automatically identify parallelism

In this work we present a dynamic analysis tool for analyzing regions of...
research
07/29/2021

Separator logic and star-free expressions for graphs

We describe two formalisms for defining graph languages, and prove that ...
research
06/14/2023

GraphVine: A Data Structure to Optimize Dynamic Graph Processing on GPUs

Graph processing on GPUs is gaining momentum due to the high throughputs...
research
09/29/2021

From Organisational Structure to Organisational Behaviour Formalisation

To understand how an organisational structure relates to organisational ...

Please sign up or login with your details

Forgot password? Click here to reset