Modelling State, Concurrency and I/O in Functional Languages
Speaker: Malcolm Dowse
9th May 2006 , 2pm , 1.18 Claremont Tower
Abstract
Two important aspects to language design are concurrency/communication and the handling of state, such as array or file system access. However, the semantics of these are traditionally given in altogether different ways - the latter often with stores and state-transformers, the former using process calculi like CCS and CSP. Language semantics is of real interest since it gives a rigorous basis for language modifications, such as new type systems or better compiler optimisations.
This talk presents a novel semantics which describes both stateful and concurrency-based aspects of languages under the same broad framework. We use this to outline a solution to the old problem of structuring side-effects in functional languages, presenting a basic language extension and semantics for deterministic I/O and concurrency in the lazy language Haskell.
|