English

Reversing an Imperative Concurrent Programming Language

Programming Languages 2022-05-04 v1

Abstract

We introduce a method of reversing the execution of imperative concurrent programs. Given an irreversible program, we describe the process of producing two versions. The first performs forward execution and saves information necessary for reversal. The second uses this saved information to simulate reversal. We propose using identifiers to overcome challenges of reversing concurrent programs. We prove this reversibility to be correct, showing that the initial program state is restored and that all saved information is used (garbage-free).

Keywords

Cite

@article{arxiv.2205.01171,
  title  = {Reversing an Imperative Concurrent Programming Language},
  author = {James Hoey and Irek Ulidowski},
  journal= {arXiv preprint arXiv:2205.01171},
  year   = {2022}
}

Comments

48 pages, 21 figures