In this talk I will describe an extension to Haskell --- Concurrent Haskell --- that allows it to express explicitly concurrent applications. Concurrent Haskell appears to be both expressive and efficient, and I will give a number of examples of useful abstractions that can be built from Concurrent Haskell's primitives.
An important question is, of course, how to integrate the semantic purity of a functional language with the non-determinism that concurrency necessarily introduces. Do we have to throw the baby out with the bathwater? No, we do not: I will show how to provide a stratified semantics that embodies the usual semantics of purely-functional Haskell as a subset.
Concurrent Haskell is fully implemented, and distributed with the Glasgow Haskell compiler. Its largest single application is the Haggis graphical user interface toolkit, which makes extensive use of concurrency.
Last updated by