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.
I am currently working on testing and formal verification. After that, I plan to look into supercompilation of concurrent programs, aiming to execute as much of the computation at compile-time as possible.
See my publications and CV.
- barrucadu on Freenode and Rizon
- 3F0B 7E4E 590D 9749 CFE7 146E 37F4 AF9F 9F58 FC68
- “Weekend Project: Writing a Gopher Server in Erlang”
How better to learn Erlang than by writing a server?
- “Continuous Integration with Jenkins and Stack”
Playing around with the cool new Haskell build tool.
- “Pre-emption Bounding”
Implementing pre-emption bounding in monad-conc.
- “Haskell Systematic Concurrency Testing”
What systematic concurrency testing (SCT) is, and how we can apply it to Haskell.
- “Garbage Collection”
An overview of the major different types of garbage collector.
- “A Gentle Introduction to Parsec”
Introduction to Parsec by constructing a parser for CSV files.