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

by   René Haberland, et al.

This work proposes a Prolog-dialect for the found and prioritised problems on expressibility and automation. Given some given C-like program, if dynamic memory is allocated, altered and freed on runtime, then a description of desired dynamic memory is a heap specification. The check of calculated memory state against a given specification is dynamic memory verification. This contribution only considers formal specification and verification in a Hoare calculus. Issues found include: invalid assignment, (temporary) unavailable data in memory cells, excessive memory allocation, (accidental) heap alteration in unexpected regions and others. Excessive memory allocation is nowadays successfully resolved by memory analysers like Valgrind. Essentially, papers in those areas did not bring any big breakthrough. Possible reasons may also include the decrease of tension due to more available memory and parallel threads. However, starting with Apt, problems related to variable modes have not yet been resolved – neither entirely nor in an acceptable way. Research contributions over the last decades show again and again that heap issues remain and remain complex and still important. A significant contribution was reached in 2016 by Peter O'Hearn, who accepted the Gödel prize for his parallel approach on a spatial heap operation.


page 1

page 2

page 3

page 4


Review of Recent Techniques on Heap Specification and Verification

This review article provides an overview of recent approaches and techni...

A Stricter Heap Separating Points-To Logic

Dynamic memory issues are hard to locate and may cost much of a developm...

Rely-guarantee Reasoning about Concurrent Memory Management: Correctness, Safety and Security

Formal verification of concurrent operating systems (OSs) is challenging...

Modular Answer Set Programming as a Formal Specification Language

In this paper, we study the problem of formal verification for Answer Se...

RealityCheck: Bringing Modularity, Hierarchy, and Abstraction to Automated Microarchitectural Memory Consistency Verification

Modern SoCs are heterogeneous parallel systems comprised of components d...

Presburger-Definable Parameterized Typestates

Typestates are good at capturing dynamic states of a program as compared...

Specification description and verification of multitask hybrid systems in the OTS/CafeOBJ method

To develop IoT and/or CSP systems, we need consider both continuous data...

Please sign up or login with your details

Forgot password? Click here to reset