Functional languages are a productive medium for expressing algorithms and solving specific classes of problems. When functional languages are applicable, they are amazingly effective. A well written functional program is a concise executable specification of a solution to a problem.
My research program improves both the applicability and effectiveness of functional languages by creating language extensions, compiler technologies, and offline translation technologies. We then deploy these new technologies into diverse application areas, including telemetry and real-time systems. The scope and influence of these ideas is larger than simply their use inside our functional language community. The long term goal of our community at large is to change how we build software and design hardware.
Here is a summary of my projects, students, and external collaborations.
Projects
- 2009-2010Efficient Hardware Implementation of Iterative FEC Decoders.
-
On this project we will be using a functional language based hardware description compiler developed at KU to render VHDL. The PI on this project is Erik Perrins.
Students
- Vijayanand Manickam, MS expected 2009.
Tools
- 2006-Haskell Program Coverage (HPC) is a high-fidelity coverage tool for Haskell, now in widespread use throughout the Haskell community.
- 2008-KURE is a Haskell-hosted DSL for authoring rewriting systems, and in use in various research projects at KU.
External Projects, Partnerships, and Collaborations
TIMBER is a prototype of a Haskell based language for real-time systems. We use TIMBER to investigate expressing hard and soft real-time constraints using functional languages, as well as hardware generation issues.
The Glasgow Haskell Compiler is the premier Haskell compiler, currently being maintained as an open source project from inside Microsoft Research, Cambridge. Like many other groups in the functional language community, we use this compiler as a test-bed for our ideas.