Learn More
Consensus is an often occurring problem in concurrent and distributed programming. We present a programming language with simple semantics and build-in support for consensus in the form of communicating transactions. We motivate the need for such a construct with a characteristic example of generalized consensus which can be naturally encoded in our(More)
We develop a theory of bisimulations for a simple language containing communicating transactions, obtained by dropping the isolation requirement of standard transactions. Such constructs have emerged as a useful programming abstraction for distributed systems. In systems with communicating transactions actions are tentative, waiting for certain transactions(More)
We propose a method to extend ML with session types which requires minimal typing annotations. Our approach uses a novel combination and extension of well-known techniques to separate the underlying type system of ML from the typing of sessions. This two level approach simplifies session typing and gives rise to a sound and complete inference algorithm for(More)
  • 1