Back to Search Start Over

CRIL: A Concurrent Reversible Intermediate Language

Authors :
Oguchi, Shunya
Yuen, Shoji
Source :
EPTCS 387, 2023, pp. 149-167
Publication Year :
2023

Abstract

We present a reversible intermediate language with concurrency for translating a high-level concurrent programming language to another lower-level concurrent programming language, keeping reversibility. Intermediate languages are commonly used in compiling a source program to an object code program closer to the machine code, where an intermediate language enables behavioral analysis and optimization to be decomposed in steps. We propose CRIL (Concurrent Reversible Intermediate Language) as an extension of RIL used by Mogensen for a functional reversible language, incorporating a multi-thread process invocation and the synchronization primitives based on the P-V operations. We show that the operational semantics of CRIL enjoy the properties of reversibility, including the causal safety and causal liveness proposed by Lanese et al., checking the axiomatic properties. The operational semantics is defined by composing the bidirectional control flow with the dependency information on updating the memory, called annotation DAG. We show a simple example of `airline ticketing' to illustrate how CRIL preserves the causality for reversibility in imperative programs with concurrency.<br />Comment: In Proceedings EXPRESS/SOS2023, arXiv:2309.05788

Details

Database :
arXiv
Journal :
EPTCS 387, 2023, pp. 149-167
Publication Type :
Report
Accession number :
edsarx.2309.07310
Document Type :
Working Paper
Full Text :
https://doi.org/10.4204/EPTCS.387.11