2018
DOI: 10.4204/eptcs.276.7
|View full text |Cite
|
Sign up to set email alerts
|

Reversing Parallel Programs with Blocks and Procedures

Abstract: 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, … Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
22
0

Year Published

2019
2019
2020
2020

Publication Types

Select...
5

Relationship

5
0

Authors

Journals

citations
Cited by 12 publications
(22 citation statements)
references
References 19 publications
0
22
0
Order By: Relevance
“…Hoey and Ulidowski introduce a small imperative while language and describe a state-saving approach to reversing executions [33]. This was then extended to support an imperative concurrent language, using identifiers to capture the specific interleaving order and to ensure statements are reversed in the correct order [34]. The proof of correctness provided shows that the reversal is both correct and garbage free.…”
Section: Reversing Imperative Concurrent Programsmentioning
confidence: 99%
See 3 more Smart Citations
“…Hoey and Ulidowski introduce a small imperative while language and describe a state-saving approach to reversing executions [33]. This was then extended to support an imperative concurrent language, using identifiers to capture the specific interleaving order and to ensure statements are reversed in the correct order [34]. The proof of correctness provided shows that the reversal is both correct and garbage free.…”
Section: Reversing Imperative Concurrent Programsmentioning
confidence: 99%
“…The syntax of this language follows. The program state is represented as a series of environments, including the variable environment γ (linking variables to memory locations), the data store σ (linking memory locations to values), the procedure environment μ (storing multiple copies of procedure bodies being executed in parallel) and the while environment β (storing multiple copies of loops being executed in parallel) [34].…”
Section: Language and Program Statementioning
confidence: 99%
See 2 more Smart Citations
“…Reversible computing is attracting interest for its applications in many fields including hardware design and quantum computing [27], the modelling of biochemical reactions [23,11,24], parallel discrete event simulation [25] and program reversing for debugging [7,14,10].…”
Section: Introductionmentioning
confidence: 99%