- Parallel programming
- Functional programming
- Data structures and algorithms
- Programming languages and models
- High performance computing
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 tree-like strutures (e.g. quadtree, graphs), 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 parallel programming 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]
- 2nd International Summer School on Advances in Programming Languages
19th-22nd August, 2014 Heriot-Watt University, Edinburgh.
Registration form | Contact: AiPL2014firstname.lastname@example.org
- Distinguished Lecture with Bjarne Stroustrup, the inventor of C++, in Edinburgh
Monday, 28 April 2014 from 17:30 to 20:30, Edinburgh.
- Midlands Graduate School (MGS) in the Foundations of Computing Science
22-26 April 2014, Uni. of Nottingham.
- 6th annual SICSA PhD Conference
9-10 June 2014, Uni. of St Andrews.
- Course: Dependently typed metaprogramming (in Agda)
LFCS, Uni. of Edinburgh.