The documents contained in these pages are included to ensure
timely dissemination of scholarly and technical work on a
non-commercial basis. Copyright and all rights therein are maintained
by the authors or by other copyright holders, notwithstanding that
they have offered their works here electronically. It is understood
that all persons copying this information will adhere to the terms and
constraints invoked by each author's copyright. These works may not be
reposted without the explicit permission of the copyright holder.
Here are papers that have been submitted for publication.
Graham Hutton and Mauro Jaskelioff and Andy Gill, Factorising Folds for Faster Functions, Submitted to the Journal of Functional Programming special issue on Generic Programming, Oct 2009. Details, pdf, Extended Version (pdf), BibTeX| The worker/wrapper transformation is a general technique for improving the performance of recursive programs by changing their types. The previous formalisation (Gill & Hutton, 2009) was based upon a simple fixed point semantics of recursion. In this article we develop a more structured approach, based upon initial algebra semantics. In particular, we show how the worker/wrapper transformation can be applied to programs defined using the structured pattern of recursion captured by fold operators, and illustrate our new technique with a number of examples. |
|
Kevin Matlage and Andy Gill, ChalkBoard: Mapping Functions to Polygons, Submitted to IFL'09, Nov 2009. Details, pdf, BibTeX| ChalkBoard is a domain specific language for describing images. The ChalkBoard language is uncompromisingly functional and encourages the use of modern functional idioms. ChalkBoard uses off-the-shelf graphics cards to speed up rendering of functional descriptions. In this paper, we describe the design of the core ChalkBoard language, and the architecture of our static image generation accelerator. |
|
Andy Gill and Tristan Bull and Garrin Kimmell and Erik Perrins and Ed Komp and Brett Werling, Introducing Kansas Lava, Submitted to IFL'09, Nov 2009. Details, pdf, BibTeX| Kansas Lava is a domain specific language for hardware description. Though there have been a number of previous implementations of Lava, we have found the design space rich, with unexplored choices. We use a direct (Chalmers style) specification of circuits, and make significant use of Haskell overloading of standard classes, leading to concise circuit descriptions. Kansas Lava supports both simulation (inside GHCi), and execution via VHDL, by having a dual shallow and deep embedding inside our Signal type. We also have a lightweight sized-type mechanism, allowing for MATLAB style matrix based specifications to be directly expressed in Kansas Lava. |
|