144,281 research outputs found

    Session types revisited

    Get PDF
    Session types are a formalism used to model structured communication-based programming. A binary session type describes communication by specifying the type and direction of data exchanged between two parties. When session types and session processes are added to the syntax of standard π-calculus they give rise to additional separate syntactic categories. As a consequence, when new type features are added, there is duplication of effort in the theory: the proofs of properties must be checked both on standard types and on session types. We show that session types are encodable into standard π- types, relying on linear and variant types. Besides being an expressivity result, the encoding (i) removes the above redundancies in the syntax, and (ii) the properties of session types are derived as straightforward corollaries, exploiting the corresponding properties of standard π-types. The robustness of the encoding is tested on a few extensions of session types, including subtyping, polymorphism and higher-order communications

    Recursive Session Types Revisited

    Get PDF
    Session types model structured communication-based programming. In particular, binary session types for the pi-calculus describe communication between exactly two participants in a distributed scenario. Adding sessions to the pi-calculus means augmenting it with type and term constructs. In a previous paper, we tried to understand to which extent the session constructs are more complex and expressive than the standard pi-calculus constructs. Thus, we presented an encoding of binary session pi-calculus to the standard typed pi-calculus by adopting linear and variant types and the continuation-passing principle. In the present paper, we focus on recursive session types and we present an encoding into recursive linear pi-calculus. This encoding is a conservative extension of the former in that it preserves the results therein obtained. Most importantly, it adopts a new treatment of the duality relation, which in the presence of recursive types has been proven to be quite challenging.Comment: In Proceedings BEAT 2014, arXiv:1408.556

    API Generation for Multiparty Session Types, Revisited and Revised Using Scala 3 (Full Version)

    Get PDF
    Construction and analysis of distributed systems is difficult. Multiparty session types (MPST) constitute a method to make it easier. The idea is to use type checking to statically prove deadlock freedom and protocol compliance of communicating processes. In practice, the premier approach to apply the MPST method in combination with mainstream programming languages has been based on API generation. In this paper (pearl), we revisit and revise this approach. Regarding our “revisitation”, using Scala 3, we present the existing API generation approach, which is based on deterministic finite automata (DFA), in terms of both the existing states-as-classes encoding of DFAs as APIs, and a new states-as-type-parameters encoding; the latter leverages match types in Scala 3. Regarding our “revision”, also using Scala 3, we present a new API generation approach that is based on sets of pomsets instead of DFAs; it crucially leverages match types, too. Our fresh perspective allows us to avoid two forms of combinatorial explosion resulting from implementing concurrent subprotocols in the DFA-based approach. We implement our approach in a new API generation tool

    Characterizations of User Web Revisit Behavior

    Get PDF
    In this article we update and extend on earlier long-term studies on user's page revisit behavior. Revisits ar

    On duality relations for session types

    Get PDF
    Session types are a type formalism used to describe communication protocols over private session channels. Each participant in a binary session owns one endpoint of a session channel. A key notion is that of duality: the endpoints of a session channel should have dual session types in order to guarantee communication safety. Duality relations have been independently defined in different ways and different works, without considering their effect on the type system. In this paper we systematically study the existing duality relations and some new ones, and compare them in order to understand their expressiveness. The outcome is that those relations are split into two groups, one related to the na¨ıve inductive duality, and the other related to a notion of mutual compliance, which we borrow from the literature on contracts for web-services

    A New Linear Logic for Deadlock-Free Session-Typed Processes

    Get PDF
    The π -calculus, viewed as a core concurrent programming language, has been used as the target of much research on type systems for concurrency. In this paper we propose a new type system for deadlock-free session-typed π -calculus processes, by integrating two separate lines of work. The first is the propositions-as-types approach by Caires and Pfenning, which provides a linear logic foundation for session types and guarantees deadlock-freedom by forbidding cyclic process connections. The second is Kobayashi’s approach in which types are annotated with priorities so that the type system can check whether or not processes contain genuine cyclic dependencies between communication operations. We combine these two techniques for the first time, and define a new and more expressive variant of classical linear logic with a proof assignment that gives a session type system with Kobayashi-style priorities. This can be seen in three ways: (i) as a new linear logic in which cyclic structures can be derived and a CYCLE -elimination theorem generalises CUT -elimination; (ii) as a logically-based session type system, which is more expressive than Caires and Pfenning’s; (iii) as a logical foundation for Kobayashi’s system, bringing it into the sphere of the propositions-as-types paradigm

    API generation for multiparty session types, revisited and revised using Scala 3

    Get PDF
    Construction and analysis of distributed systems is difficult. Multiparty session types (MPST) constitute a method to make it easier. The idea is to use type checking to statically prove deadlock freedom and protocol compliance of communicating processes. In practice, the premier approach to apply the MPST method in combination with mainstream programming languages has been based on API generation. In this paper (pearl), we revisit and revise this approach. Regarding our “revisitation”, using Scala 3, we present the existing API generation approach, which is based on deterministic finite automata (DFA), in terms of both the existing states-as-classes encoding of DFAs as APIs, and a new states-as-type-parameters encoding; the latter leverages match types in Scala 3. Regarding our “revision”, also using Scala 3, we present a new API generation approach that is based on sets of pomsets instead of DFAs; it crucially leverages match types, too. Our fresh perspective allows us to avoid two forms of combinatorial explosion resulting from implementing concurrent subprotocols in the DFA-based approach. We implement our approach in a new API generation tool

    Assault Weapons Revisited: Policy Options for Regulating Rifles, Shotguns, and Other Firearms 20 Years After the Passage of the Assault Weapons Ban

    Get PDF
    20 years after President Bill Clinton signed the federal assault weapons ban into law in September 1994 and a decade after Congress allowed that law to lapse -- the question of whether and how to regulate particularly lethal firearms is no longer the primary focus of the national gun debate. In the wake of the December 2012 massacre at Sandy Hook Elementary School in Newtown, Connecticut, President Barack Obama, congressional leaders, and gun-violence prevention advocates alike made deterring dangerous people from accessing guns the top legislative priority with a proposal for comprehensive background checks for all gun sales. This shift in focus to prevent dangerous people from accessing guns is appropriate: A broad set of research suggests that such measures are effective in reducing gun violence. Additionally, there is overwhelming support in opinion polls for expanding background checks and similar measures aimed at restricting dangerous people from accessing guns. But the debate persists about whether and how to best regulate assault rifles and other types of firearms that may pose heightened risks to public safety. For more than 20 years, there has generally been only one policy solution offered in this debate: a ban on assault weapons.This report considers how gun laws have evolved to address different classes of firearms and looks more broadly at how federal and state laws treat rifles and shotguns differently than handguns and whether all of those distinctions continue to make sense. It also examines data on the changing nature of gun violence and the increasing use of long guns and assault rifles by criminals, with a focus on Pennsylvania as a case study
    corecore