Mechanisms for compensation handling and dynamic update are increasingly relevant in the specification of reliable communicating systems. Compensations and updates are intuitively similar: both specify how the behavior of a concurrent system changes at runtime in response to an exceptional event. However, calculi for concurrency with compensations and updates are technically quite different. We compare calculi for concurrency with compensation handling and dynamic update from the standpoint of their relative expressiveness. We develop two encodings of a process calculus with compensation handling into a calculus of adaptable processes. These encodings differ in the target language considered: the first considers adaptable processes with subjective updates in which, intuitively, a process reconfigures itself; the second considers objective updates in which a process is reconfigured by a process in its context. Our main discovery is that subjective updates are more efficient than objective ones in encoding primitives for compensation handling: the first encoding requires less computational steps than the second one to mimic a single computation step in the source language of compensable processes. Our encodings satisfy strong correctness criteria; they shed light on the intricate semantics of compensation handling.

, , , ,
doi.org/10.1016/j.jlamp.2021.100675
Journal of Logical and Algebraic Methods in Programming
Centrum Wiskunde & Informatica, Amsterdam, The Netherlands

Dedeić, J, Pantović, J, & Pérez Parra, J.A. (2021). On primitives for compensation handling as adaptable processes. Journal of Logical and Algebraic Methods in Programming, 121. doi:10.1016/j.jlamp.2021.100675