Functional Programming and Program Transformation
This is the entry page
to my small web around selected topics of
functional programming, especially in Haskell, and
program transformation.
Projects
- a term graph programming and program transformation system
-
HOPS allows interactive creation and manipulation
of programs in their term graph structure.
Program transformation is supported by application of user-defined
second-order term graph rewriting rules.
Rule application and the strong typing support
are always available during editing,
and HOPS modules are literate programs.
- Haskell Animation
- In this project I strive to make the graphical and interactive capabilities of HOPS
available to animation and debugging of
Haskell programs.
Its central component is a special-purpose ``middle end'' to the
Glasgow Haskell Compiler GHC,
allowing to produce HOPS modules.
In the long run,
this should also open up the possibility
to use HOPS to transform Haskell programs.
Two example animations can be found in a
derivation
of efficient variants of
lines
.
- Editor Combinators
- Just as parser combinators replace parser generator tools,
it will become possible to replace tools for generating structure editors
with editor combinators.
- Galley Concepts in Document Formatting Combinators
- Galleys are the central concept of the document formatting system
Lout
developed by Jeff Kingston,
and allow high-level programming of document styles.
I have started to explore a purely functional formulation of
galley behaviour, which might, in the future,
lead to an even nicer successor system to Lout.
An especially attractive aspect is
that galleys might be a good way to formalise
the ``formatting objects'' of XSL.
Wolfram Kahl