About my work
My particular areas of interest in programming are:
- Functional programming
- Formal modelling / model based programming
- Concurrency / cloud programming
- Embedded systems
I am also establishing a small business developing control systems and software for robots. The key idea is to make the robot part of the cloud rather than a stand-alone device. Further information:
I am looking at ways of implementing MapReduce-type algorithms using the functional approach. The key insight is that a generalised MapReduce algorithm is simply the repeated application of a sequence of
>>= operations in a suitable monad. There are two strands of activity:
- Development of a monadic view of MapReduce
- Developing a proof-of-concept demonstrator for monadic MapReduce, using CloudHaskell as a framework for distributed Haskell applications.
The second activity is undertaken with the support of the authors of CloudHaskell. I would be very happy if others joined in the development effort.
I'm defining and then coding a language (Catskell) in the spirit of LOLCODE which is basically a feline-friendly subset of Haskell. My intention is to write a Catskell-to-Haskell translator. This should be a good exercise in making sure I really understand the language.
By training I am a mathematician. I have been programming computers of some form or other since the early 1980s. I also have a keen interest in philosophy and music. My personal website is here.