Functional Programming Group at Kent

Our shared interests cover many aspects of the design, implementation and application of functional programming languages. This is not one of the labs full research groups, but an interest group, originally started by members of the Theoretical Computer Science Group, but members of other research groups are welcome.

We are keen to recruit new research students. We have a list of potential research projects.

News

September 2008: Jacob Johannsen joins us as new PhD student studying infinitary term rewriting with Stefan Kahrs.

November 2008: We organise the termly Fun in the Afternoon on 17 November here at Canterbury.

Old news items.

Members

Eerke Boiten, Chris Brown, Neil Brown, Olaf Chitil, Thomas Davie, Keith Hanna, Jacob Johannsen, Stefan Kahrs, Huiqing Li, Claus Reinke, Chris Ryder, Adam Sampson, Simon Thompson.

Former members: Clara Benac-Earle (Profesor Visitante at the Universidad Carlos III of Madrid, Spain), Florence Benoy, Mark Callanan, Tony Daniels (IBM Hursley Labs), Matt Jadud, Rodziah Latih, Gyorgy Orosz, Leonid Timochouk (afterwards St Andrews), Yong Luo (Bank of China), Tamas Nagy (Erlang Consulting), Axel Simon, Nik Sultana, Melinda Toth, Aniko Vig (Erlang Consulting).

Meetings

Currently our talks are integrated in the TCS seminars. We also meet irregularly for informal discussions, talks, experiments... The list of past meetings gives an idea of topics.

Current projects

FORSE: Formally-Based Tool Support for Erlang Development (Simon Thompson, Huiqing Li, others) An EPSRC-sponsored joint project with the University of Sheffield, to build tools to support the working Erlang programmer, based on our existing work in refactoring Haskell programs and verification of Erlang programs.

Refactoring functional programs (Simon Thompson, Chris Brown, Huiqing Li, Claus Reinke) Refactoring is `improving the design of existing code', by changing the structure of programs without changing their functionality. It has become popular in the object-oriented and extreme programming communities, in the form of documented refactoring sequences and tool support for refactoring. We explore the wealth of functional program transformation research to bring refactoring to Haskell programmers.

Tracing Functional Programs (Olaf Chitil,Thomas Davie, Yong Luo) For debugging and program comprehension it is very useful to see what happens during the computation of a program. The compositional semantics of functional languages allows small and expressive traces that can be viewed in many different ways. The further development of the Haskell tracer Hat is at the heart of this project.

Robotlang (Olaf Chitil,Thomas Carlson) Robotlang is a small concurrent functional programming language and implementation. It is a Scheme-like language with Erlang-like concurrency and the ability to interact with the "Player" robotics simulation tool. The implementation is written in C, designed to be portable and have a compact binary able to fit onto embedded systems like the Lego Mindstorms robots.

Vital (Keith Hanna) Vital is a visual interactive implementation of (a subset of) Haskell intended for general use in scientific/financial applications. In Vital, the visual representation of Haskell datatypes is determined by a user-defined stylesheet and the structure/content of data structures can edited by mouse-based copy-and-paste gestures.

Pivotal (Keith Hanna) This project has similar aims to the Vital project, but, unlike Vital, this one is implemented entirely in Haskell.

Many further activities can be gained from the home pages of individual members.