Reversing Parallel Programs with Blocks and Procedures

08/27/2018
by   James Hoey, et al.
0

We show how to reverse a while language extended with blocks, local variables, procedures and the interleaving parallel composition. Annotation is defined along with a set of operational semantics capable of storing necessary reversal information, and identifiers are introduced to capture the interleaving order of an execution. Inversion is defined with a set of operational semantics that use saved information to undo an execution. We prove that annotation does not alter the behaviour of the original program, and that inversion correctly restores the initial program state.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/04/2017

Reversing Imperative Parallel Programs

We propose an approach and a subsequent extension for reversing imperati...
research
02/08/2021

From Matching Logic To Parallel Imperative Language Verification

Program verification is to develop the program's proof system, and to pr...
research
07/23/2020

Dataflow Analysis With Prophecy and History Variables

Leveraging concepts from state machine refinement proofs, we use prophec...
research
05/13/2019

Operational semantics and program verification using many-sorted hybrid modal logic

We propose a general framework to allow: (a) specifying the operational ...
research
09/09/2021

An Effective Parallel Program Debugging Approach Based on Timing Annotation

We propose an effective parallel program debugging approach based on the...
research
12/28/2021

Syntactic Regions for Concurrent Programs

In order to gain a better understanding of the state space of programs, ...
research
06/23/2023

Extended Addressing Machines, explicit substitutions, PCF, definability, full abstraction

Extended addressing machines (EAMs) have been introduced to represent hi...

Please sign up or login with your details

Forgot password? Click here to reset