42 research outputs found

    Semantics and expressiveness of ordered SOS

    Get PDF

    A case study for reversible computing: Reversible debugging of concurrent programs

    Get PDF
    Reversible computing allows one to run programs not only in the usual forward direction, but also backward. A main application area for reversible computing is debugging, where one can use reversibility to go backward from a visible misbehaviour towards the bug causing it. While reversible debugging of sequential systems is well understood, reversible debugging of concurrent and distributed systems is less settled. We present here two approaches for debugging concurrent programs, one based on backtracking, which undoes actions in reverse order of execution, and one based on causal consistency, which allows one to undo any action provided that its consequences, if any, are undone beforehand. The first approach tackles an imperative language with shared memory, while the second one considers a core of the functional message-passing language Erlang. Both the approaches are based on solid formal foundations

    Controlling Reversibility in Reversing Petri Nets with Application to Wireless Communications

    Full text link
    Petri nets are a formalism for modelling and reasoning about the behaviour of distributed systems. Recently, a reversible approach to Petri nets, Reversing Petri Nets (RPN), has been proposed, allowing transitions to be reversed spontaneously in or out of causal order. In this work we propose an approach for controlling the reversal of actions of an RPN, by associating transitions with conditions whose satisfaction/violation allows the execution of transitions in the forward/reversed direction, respectively. We illustrate the framework with a model of a novel, distributed algorithm for antenna selection in distributed antenna arrays.Comment: RC 201

    Reversibility in Chemical Reactions

    Get PDF
    open access bookIn this chapter we give an overview of techniques for the modelling and reasoning about reversibility of systems, including outof- causal-order reversibility, as it appears in chemical reactions. We consider the autoprotolysis of water reaction, and model it with the Calculus of Covalent Bonding, the Bonding Calculus, and Reversing Petri Nets. This exercise demonstrates that the formalisms, developed for expressing advanced forms of reversibility, are able to model autoprotolysis of water very accurately. Characteristics and expressiveness of the three formalisms are discussed and illustrated

    Ordered SOS Process Languages for Branching and Eager Bisimulations

    No full text

    An axiomatic approach to reversible computation

    Get PDF
    Undoing computations of a concurrent system is beneficial inmany situations, e.g., in reversible debugging of multi-threaded programsand in recovery from errors due to optimistic execution in parallel dis-crete event simulation. A number of approaches have been proposed forhow to reverse formal models of concurrent computation including pro-cess calculi such as CCS, languages like Erlang, prime eventstructuresand occurrence nets. However it has not been settled what properties areversible system should enjoy, nor how the various properties that havebeen suggested, such as the parabolic lemma and the causal-consistencyproperty, are related. We contribute to a solution to these issues by usinga generic labelled transition system equipped with a relationcapturingwhether transitions are independent to explore the implications betweenthese properties. In particular, we show how they are derivable from aset of axioms. Our intention is that when establishing properties of someformalism it will be easier to verify the axioms rather than proving prop-erties such as the parabolic lemma directly. We also introduce two newnotions related to causal consistent reversibility, namely causal safetyand causal liveness, and show that they are derivable from our axioms

    An Axiomatic Theory for Reversible Computation

    No full text
    Undoing computations of a concurrent system is beneficial in many situations, such as in reversible debugging of multi-threaded programs and in recovery from errors due to optimistic execution in parallel discrete event simulation. A number of approaches have been proposed for how to reverse formal models of concurrent computation, including process calculi such as CCS, languages like Erlang, and abstract models such as prime event structures and occurrence nets. However, it has not been settled as to what properties a reversible system should enjoy, nor how the various properties that have been suggested, such as the parabolic lemma and the causal-consistency property, are related. We contribute to a solution to these issues by using a generic labelled transition system equipped with a relation capturing whether transitions are independent to explore the implications between various reversibility properties. In particular, we show how all properties we consider are derivable from a set of axioms. Our intention is that when establishing properties of some formalism, it will be easier to verify the axioms rather than proving properties such as the parabolic lemma directly. We also introduce two new properties related to causal-consistent reversibility, namely causal liveness and causal safety, stating, respectively, that an action can be undone if (causal liveness) and only if (causal safety) it is independent from all of the following actions. These properties come in three flavours: defined in terms of independent transitions, independent events, or via an ordering on events. Both causal liveness and causal safety are derivable from our axioms
    corecore