Sciweavers

ICFP
2006
ACM

Modelling deterministic concurrent I/O

14 years 11 months ago
Modelling deterministic concurrent I/O
The problem of expressing I/O and side effects in functional languages is a well-established one. This paper addresses this problem from a general semantic viewpoint by giving a unified framework for describing shared state, I/O and deterministic concurrency. We develop a modified state transformer which lets us mathematically model the API, then investigate and machine verify some broad conditions under which confluence holds. This semantics is used as the basis for a small deterministic Haskell language extension called CURIO, which enforces determinism using runtime checks. Our confluence condition is first shown to hold for a variety of small components, such as individual shared variables, 1-to-1 communication channels, and I-structures. We then show how models of substantial APIs (like a modification of Haskell's file I/O API which permits inter-process communication) may be constructed from these smaller components using "combinators" in such a way that determini...
Malcolm Dowse, Andrew Butterfield
Added 13 Dec 2009
Updated 13 Dec 2009
Type Conference
Year 2006
Where ICFP
Authors Malcolm Dowse, Andrew Butterfield
Comments (0)