• Corpus ID: 635942

Event Synchronization by Lightweight Message Passing

  title={Event Synchronization by Lightweight Message Passing},
  author={Avik Chaudhuri},
Concurrent ML's events and event combinators facilitate modular concurrent programming with first-class synchronization abstractions. A standard implementation of these abstractions relies on fairly complex manipulations of first-class continuations in the underlying language. In this paper, we present a lightweight implementation of these abstractions in Concurrent Haskell, a language that already provides first-order message passing. At the heart of our implementation is a new distributed… 

Figures from this paper



Transactional events

A novel concurrency abstraction, dubbed transactional events, is introduced, which combines first-class synchronous messagepassing events with all-or-nothing transactions, which enables simple solutions to interesting problems in concurrent programming.

Higher-Order Concurrency

This dissertation presents an approach to concurrent language design that provides a new form of linguistic support for constructing concurrent applications that treats synchronous operations as first-class values in a way that is analogous to the treatment of functions in languages such as ML.

Concurrent Haskell

This work has developed a freely-available implementation of Concurrent Haskell, and is now using it as a substrate for a graphical user interface toolkit.

A Distributed Protocol for Channel-Based Communication with Choice

This paper presents the first distributed, deadlock-free algorithm for choice, which allows different possible actions to be guarded by sends or receives in a distributed environment.

Concurrent programming in ML

This practical, "how-to" book focuses on the use of concurrency to implement naturally concurrent applications, and presents three extended examples using CML for practical systems programming.

Events in Haskell, and how to implement them

We describe a new and simpler implementation in Haskell of CML'sevents, which encode reactions by a thread to combinations ofmessages from other threads. We add a new type of Guarded Events,by which

Protocols for non-deterministic communication over synchronous channels

  • E. Demaine
  • Computer Science
    Proceedings of the First Merged International Parallel Processing Symposium and Symposium on Parallel and Distributed Processing
  • 1998
In this paper, we propose several deadlock-free protocols for implementing the generalized alternative construct, where a process non-deterministically chooses between sending or receiving among

Imperative functional programming

We present a new model, based on monads, for performing input/output in a non-strict, purely functional language. It is composable, extensible, efficient, requires no extensions to the type system,

A Protocol for Generalized occam

  • R. Bornat
  • Computer Science
    Softw. Pract. Exp.
  • 1986
A protocol is described which allows the use of guarded commands with both input and output guards and communication via one‐one channels and a proof is offered that the protocol will make progress towards process‐pairing in every eventuality.

Functional programming and input/output

The author obtains, for the first time, operational semantics for the three most widely implemented I/O mechanisms for lazy languages, and proves that the three are equivalent in expressive power.