50,159 research outputs found

    On Projecting Processes into Session Types

    Get PDF
    We define session types as projections of the behaviour of processes with respect to the operations processes perform on channels. This calls for a parallel composition operator over session types denoting the simultaneous access to a channel by two or more processes. The proposed approach allows us to define a semantically grounded theory of session types that does not require the linear usage of channels. However, type preservation and progress can only be guaranteed for processes that never receive channels they already own. A number of examples show that the resulting framework validates existing session-type theories and unifies them to some extent.</jats:p

    Parameterized Concurrent Multi-Party Session Types

    Full text link
    Session types have been proposed as a means of statically verifying implementations of communication protocols. Although prior work has been successful in verifying some classes of protocols, it does not cope well with parameterized, multi-actor scenarios with inherent asynchrony. For example, the sliding window protocol is inexpressible in previously proposed session type systems. This paper describes System-A, a new typing language which overcomes many of the expressiveness limitations of prior work. System-A explicitly supports asynchrony and parallelism, as well as multiple forms of parameterization. We define System-A and show how it can be used for the static verification of a large class of asynchronous communication protocols.Comment: In Proceedings FOCLASA 2012, arXiv:1208.432

    On Global Types and Multi-Party Session

    Get PDF
    Global types are formal specifications that describe communication protocols in terms of their global interactions. We present a new, streamlined language of global types equipped with a trace-based semantics and whose features and restrictions are semantically justified. The multi-party sessions obtained projecting our global types enjoy a liveness property in addition to the traditional progress and are shown to be sound and complete with respect to the set of traces of the originating global type. Our notion of completeness is less demanding than the classical ones, allowing a multi-party session to leave out redundant traces from an underspecified global type. In addition to the technical content, we discuss some limitations of our language of global types and provide an extensive comparison with related specification languages adopted in different communities

    Choreographies in Practice

    Full text link
    Choreographic Programming is a development methodology for concurrent software that guarantees correctness by construction. The key to this paradigm is to disallow mismatched I/O operations in programs, called choreographies, and then mechanically synthesise distributed implementations in terms of standard process models via a mechanism known as EndPoint Projection (EPP). Despite the promise of choreographic programming, there is still a lack of practical evaluations that illustrate the applicability of choreographies to concrete computational problems with standard concurrent solutions. In this work, we explore the potential of choreographies by using Procedural Choreographies (PC), a model that we recently proposed, to write distributed algorithms for sorting (Quicksort), solving linear equations (Gaussian elimination), and computing Fast Fourier Transform. We discuss the lessons learned from this experiment, giving possible directions for the usage and future improvements of choreography languages

    On Asynchrony and Choreographies

    Get PDF
    Choreographic Programming is a paradigm for the development of concurrent software, where deadlocks are prevented syntactically. However, choreography languages are typically synchronous, whereas many real-world systems have asynchronous communications. Previous attempts at enriching choreographies with asynchrony rely on ad-hoc constructions, whose adequacy is only argued informally. In this work, we formalise the properties that an asynchronous semantics for choreographies should have: messages can be sent without the intended receiver being ready, and all sent messages are eventually received. We explore how out-of-order execution, used in choreographies for modelling concurrency, can be exploited to endow choreographies with an asynchronous semantics. Our approach satisfies the properties we identified. We show how our development yields a pleasant correspondence with FIFO-based asynchronous messaging, modelled in a process calculus, and discuss how it can be adopted in more complex choreography models.Comment: In Proceedings ICE 2017, arXiv:1711.1070

    Dynamic Choreographies: Theory And Implementation

    Get PDF
    Programming distributed applications free from communication deadlocks and race conditions is complex. Preserving these properties when applications are updated at runtime is even harder. We present a choreographic approach for programming updatable, distributed applications. We define a choreography language, called Dynamic Interaction-Oriented Choreography (AIOC), that allows the programmer to specify, from a global viewpoint, which parts of the application can be updated. At runtime, these parts may be replaced by new AIOC fragments from outside the application. AIOC programs are compiled, generating code for each participant in a process-level language called Dynamic Process-Oriented Choreographies (APOC). We prove that APOC distributed applications generated from AIOC specifications are deadlock free and race free and that these properties hold also after any runtime update. We instantiate the theoretical model above into a programming framework called Adaptable Interaction-Oriented Choreographies in Jolie (AIOCJ) that comprises an integrated development environment, a compiler from an extension of AIOCs to distributed Jolie programs, and a runtime environment to support their execution.Comment: arXiv admin note: text overlap with arXiv:1407.097

    Dynamic Choreographies - Safe Runtime Updates of Distributed Applications

    Get PDF
    Programming distributed applications free from communication deadlocks and races is complex. Preserving these properties when applications are updated at runtime is even harder. We present DIOC, a language for programming distributed applications that are free from deadlocks and races by construction. A DIOC program describes a whole distributed application as a unique entity (choreography). DIOC allows the programmer to specify which parts of the application can be updated. At runtime, these parts may be replaced by new DIOC fragments from outside the application. DIOC programs are compiled, generating code for each site, in a lower-level language called DPOC. We formalise both DIOC and DPOC semantics as labelled transition systems and prove the correctness of the compilation as a trace equivalence result. As corollaries, DPOC applications are free from communication deadlocks and races, even in presence of runtime updates.Comment: Technical Repor

    Stress-Induced Cocaine Seeking Requires a Beta-2 Adrenergic Receptor-Regulated Pathway from the Ventral Bed Nucleus of the Stria Terminalis That Regulates CRF Actions in the Ventral Tegmental Area

    Get PDF
    The ventral bed nucleus of the stria terminalis (vBNST) has been implicated in stress-induced cocaine use. Here we demonstrate that, in the vBNST, corticotropin releasing factor (CRF) is expressed in neurons that innervate the ventral tegmental area (VTA), a site where the CRF receptor antagonist antalarmin prevents the reinstatement of cocaine seeking by a stressor, intermittent footshock, following intravenous self-administration in rats. The vBNST receives dense noradrenergic innervation and expresses β adrenergic receptors (ARs). Footshock-induced reinstatement was prevented by bilateral intra-vBNST injection of the β-2 AR antagonist, ICI-118,551, but not the β-1 AR antagonist, betaxolol. Moreover, bilateral intra-vBNST injection of the β-2 AR agonist, clenbuterol, but not the β-1 agonist, dobutamine, reinstated cocaine seeking, suggesting that activation of vBNST β-2 AR is both necessary for stress-induced reinstatement and sufficient to induce cocaine seeking. The contribution of a β-2 AR-regulated vBNST-to-VTA pathway that releases CRF was investigated using a disconnection approach. Injection of ICI-118,551 into the vBNST in one hemisphere and antalarmin into the VTA of the contralateral hemisphere prevented footshock-induced reinstatement, whereas ipsilateral manipulations failed to attenuate stress-induced cocaine seeking, suggesting that β-2 AR regulate vBNST efferents that release CRF into the VTA, activating CRF receptors, and promoting cocaine use. Last, reinstatement by clenbuterol delivered bilaterally into the vBNST was prevented by bilateral vBNST pretreatment with antalarmin, indicating that β-2 AR-mediated actions in the vBNST also require local CRF receptor activation. Understanding the processes through which stress induces cocaine seeking should guide the development of new treatments for addiction
    • …
    corecore