- Parallel programming
- Functional programming
- Data structures and algorithms
- Programming Languages and Models
My core research focus is the design and implementation of inherently parallel data structures in Haskell. At present, I'm implementing data structures to be used mostly at the application or user level, e.g. parallel trees and graphs, available as libraries to be used in programs to benefit from parallelism for free or with minimal code changes. I look at specialised structures such as random-access list, which uses alternative underlying representation as opposed to traditional list, and quadtree, which is useful in a number of applications. I want to look more into system-level structures, such as those used in RTS (e.g. double-ended queue, "pool"). That would most likely require the use of fairly low-level parallel/concurrent primitives available in Haskell, as opposed to the high-level abstraction that I'm currently using for the user-level structures.
Previously we surveyed parallel programming models for the Haskell language covering parallel extensions (GpH, Eden) and libraries (Par monad) , across languages incl. Haskell, F# and Scala , and for heterogeneous computing .
events[upcoming] [past] [other]
- IET/BCS Turing Lecture 2014 - Edinburgh
Beyond silicon: cognition and much, much more
Thu 27 Feb 2014 6PM, Appleton Tower, Uni. of Edinburgh.
- OpenJDK School Sessions
4-6 March 2014, Glasgow/Edinburgh.
- Midlands Graduate School (MGS) in the Foundations of Computing Science
22-26 April 2014, Uni. of Nottingham.
- Course: Dependently typed metaprogramming (in Agda)
LFCS, Uni. of Edinburgh.