Lecturer / PGR Admissions Officer
My publications are available from the University of Kent's Academic Repository.Some selected publications:
Rewriting: closure operators, equivalences and models
(Acta Informatica 2013)
- Infinitary Term Rewriting: Foundations revisited; RTA 2010
- Modularity of Convergence in Infinitary Rewriting RTA 2009
Meta-Theory and convergence (Acta Informatica 2007)
I belong to the following research groups:term rewriting, e.g. infinitary rewriting, higher-order rewriting, as well as the first-order traditional stuff. These cover the whole range from implementations, proving properties about them, to semantic models. In recent years I have been specialising on infinitary rewriting.
I am also interested in functional, logic, and functional-logic programming. The whole spectrum from questions about design, usage, expressiveness, type systems, methodology, specifications, semantics, down to things like implementation techniques, efficiency considerations etc. In other words, this is more or less the whole spectrum of what some people call Euro-Theory. One (unpublished) example of that is this proof that all primitive recursive functions can be enumerated without semantic duplicates. Sadly, this turned out to be a (not very well-) known result, proved by Ersov in the early 1970s.
Currently I am teaching Functional Programming, Algorithms, Object-Oriented Programming, Logic, and Regular Languages - listed in the order how close they are to my research.
I actually prefer FP over OOP as a programming paradigm, partly because the programs tend to be much shorter, but mostly because OOP programs are nigh impossible to reason about.
One of my admin jobs is PGR admissions.
Occasionally, just occasionally I actually do write the odd little program. For example, some time of summer 1999 I spent writing an applet for the translation of regular expressions. Note the input alphabet are all alphanumeric characters, iteration is * (and +), choice is |, epsilon is %, the empty language is @, and parentheses are for grouping. After entering the input regexp (in the text field - do not forget to finish it with RETURN), the graph is transformed stepwise by continually pressing the transform button.
Being a screwed-up scientist, I obviously tried to give this piece of work the scientific treatment. One could argue though that collecting and analysing transformation rules for regular expressions from the literature is closer to trainspotting than doing science...