I am Michael Walker, otherwise known online as barrucadu. I am currently a Ph.D student in the Department of Computer Science at the University of York.
My research relates to nondeterministic concurrency in pure functional programming languages, such as Haskell. Increasingly, turning to concurrency for performance gains is a no-brainer, but it can be hard to get it right. Concurrency is hard in a number of areas:
Testing, due to nondeterminism inherent in the underlying primitives and abstractions, meaning we need new techniques.
Formal verification, in the presence of abstractions like first-class functions, lazy evaluation, and “higher-order” state; many of which are essential in a pure functional language.
Optimisation, as compiler optimisations typically stop as soon as side-effects are involved.
My recent work has been on systematic testing assuming a sequentially-consistent memory model, next I plan to move on to the issues of relaxed memory and testing non-synchronised primitives like compare-and-swap, used in the implementation of many modern concurrent algorithms.