Learn 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)
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 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)
Transactional Memory is a now popular abstraction to implement mutual exclusion in concurrent shared-memory systems. TM achieves this by effectively isolating processes from each other, but for this reason it is not suitable for implementing consensus, where processes need to communicate. Recently proposed abstractions for streamlining consensus in(More)
  • 1