The University of Kent, Canterbury, Kent, CT2 7NZ, T +44 (0)1227 764000
Mr Christopher Brown
My publications are available from the Computer Science department publications repository.
PhD Project SummaryTransformation and analysis techniques for Haskell. In particular, refactoring Haskell using HaRe.
I am a member of the following research groups:Computer Science Department at Kent University, UK. I am a member of the Functional Programming research group and also the Theoretical Computer Science research group. I am supervised by Professor Simon Thompson working in the field of program transformation, where I use Haskell, the purely functional, strongly typed, lazy functional programming language.
I find functional programming and mathematics fascinating. Most of my research involves Haskell in some way and I would like to see functional languages (such as Haskell and Erlang) used more frequently in industry, where "fashionable" (but not always suitable) languages such as Java are common place. Haskell is perfect for parsing and language techniques - and most projects require parsing and language transformation in some way or another.
I am currently working on HaRe the Haskell Refactorer. I have wrote several new refactorings for HaRe, some of the refactorings are program slicing techniques.
If you take into account a pure functional paradigm without a mutable state then program slicing suddenly becomes stunningly beautiful. I have wrote a program slicing algorithm for Haskell, which works as a transformation for HaRe.
Classical Logic and Type Theory - Every mathematican and functional programmer should have a sound understanding of type theory. Almost everyone who has ever written a program in Haskell would have come across the type system inference by GHC (or another Haskell compiler). Usually, type errors are incomprehensible to new Haskell programmers, and I would like to research into methods to make type errors much more useful.
Functional programming and classical logic go together like peas in a pod. Haskell uses equations and so does classical logic, it would be nice to see a tool to test whether a haskell program satisfies a condition by using induction.
I keep a blog of my work at My Blog.
You can download my mini thesis here .
I am also intrested in language translation with reference to formally specifying the semantics for different types of languages.
BackgroundMy final year project as part of my undergraduate studies was to create a Syntax Directed Editor in Java and Haskell. The front-end was in Java and the back-end was in Haskell. The interesting part of the project was using GCJNI, an interface used to link Haskell with Java. I was supervised by Dr. Dave Harrison.
When I am not in front of a computer -- I am either teaching, socialising or playing the classical guitar where I achieved both grade 7 and grade 8 with distinction. I am currently working towards an ATCL recital diploma; I also play the piano.
Like mathematics, I also find music fascinating. Music is a binary closure: there is only good music or bad music. I don't believe in categorising music, or people who will only listen to one particular genre. I particularly love the music of J.S.Bach, Villa-Lobos, Britten, John Dowland, William Walton, Shostakovich and the famous Fernando Sor.
Some recordings of myself playing Walton's first two bagatelles for guitar: Bagatelle 1 Bagatelle 2
A BBQ and a Prom visit
TalksFunctional Programming Group talk on Refactoring Functional Programs and Program Slicing. Here.
TCS talk on "Towards Type Based Refactorings".
Functional Programming Group talk on "Template Haskell: The road to compile time meta-programming".
IFL 2007 talk "Refactorings to Split and Merge Programs"