Reversing Imperative Parallel Programs

09/04/2017
by   James Hoey, et al.
0

We propose an approach and a subsequent extension for reversing imperative programs. Firstly, we produce both an augmented version and a corresponding inverted version of the original program. Augmentation saves reversal information into an auxiliary data store, maintaining segregation between this and the program state, while never altering the data store in any other way than that of the original program. Inversion uses this information to revert the final program state to the state as it was before execution. We prove that augmentation and inversion work as intended, and illustrate our approach with several examples. We also suggest a modification to our first approach to support non-communicating parallelism. Execution interleaving introduces a number of challenges, each of which our extended approach considers. We define annotation and redefine inversion to use a sequence of statement identifiers, making the interleaving order deterministic in reverse.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/27/2018

Reversing Parallel Programs with Blocks and Procedures

We show how to reverse a while language extended with blocks, local vari...
research
05/02/2022

Reversing an Imperative Concurrent Programming Language

We introduce a method of reversing the execution of imperative concurren...
research
09/21/2023

Turaco: Complexity-Guided Data Sampling for Training Neural Surrogates of Programs

Programmers and researchers are increasingly developing surrogates of pr...
research
06/08/2021

Dynamic Software Updates for Unmodified Browsers through Multi-Version Execution

In this paper, we present the design, implementation, and evaluation of ...
research
03/26/2021

Robot Program Parameter Inference via Differentiable Shadow Program Inversion

Challenging manipulation tasks can be solved effectively by combining in...
research
12/31/2020

Automatic Synthesis of Parallel and Distributed Unix Commands with KumQuat

We present KumQuat, a system for automatically synthesizing parallel and...
research
01/31/2022

Plug-In Inversion: Model-Agnostic Inversion for Vision with Data Augmentations

Existing techniques for model inversion typically rely on hard-to-tune r...

Please sign up or login with your details

Forgot password? Click here to reset