The research interest of the groups at Heriot-Watt and St Andrews University is in the design and implementation of declarative languages. In particular, we focus on the efficient parallel and distributed implementation of functional languages. This research has resulted in the development of Glasgow parallel Haskell (GpH) [8] and Glasgow distributed Haskell (GdH) [6], two extensions of Haskell based on the GHC compiler, and the design and implementation of Hume [1,5], a novel declarative language for safety critical systems. In these implementations efficient memory management is crucial.
In particular, we are investigating the performance of the virtual shared memory management in GpH and GdH [2]. We are interested in distributed garbage collection, both for high-performance computing in GpH[3] and for predictable time and space consumption in Hume. To achieve the latter goal we are in the process of implementing static analyses for predicting space usage for Hume [4,7]. In the past we have also used profiling techniques to gain information about dynamic program behaviour and developed static visualisation tools to aide the programmer's understanding of the parallel performance. We plan to investigate this avenue further in the future.
The papers cited above are available from the language home pages.
[1] K. Hammond & G. Michaelson, "Hume, a functionally inspired language for safety critical systems", in S. Gilmore (Ed), Proceedings of 2nd Scottish Functional Programming Workshop, St Andrews, July 2000, pp 85-100.
[2] H-W. Loidl. "The Virtual Shared Memory Performance of a Parallel Graph Reducer" . In DSM 2002 --- International Workshop on Distributed Shared Memory on Clusters (organised with CCGrid 2002 --- International Symposium on Cluster Computing and the Grid), May 21 - 24, 2002, Berlin, Germany. To appear. <;
[3] H-W. Loidl. "Granularity in Large-Scale Parallel Functional Programming", PhD thesis, Department of Computing Science, University of Glasgow, March 1998. <
[4] G. Michaelson, "Constraints on recursion in the Hume expression language", in M. Mohnen & P. Koopman (Eds), Proceedings of 12th International Workshop on the Implementation of Functional Languages, Aachner Informatik-Berichte, ISSN 0935-3232, Aachen, September 2000, pp231-246.
[5] G. Michaelson, K. Hammond. "Programming with Finite State Machines and Recursive Functions". To be submitted to "ACM TOPLAS". In preparation.
[6] R.F. Pointon, P.W. Trinder, and H-W. Loidl. "The Design and Implementation of GdH: a Distributed Functional Language". In IFL'00 - International Workshop on the Implementation of Functional Languages, RWTH Aachen, Germany, September 4--7, 2000. LNCS 2011, pp. 53--70, Springer-Verlag, January 2001.
[7] A.J. Rebon Portillo, K. Hammond, H-W. Loidl. "Granularity Analysis using Automatic Size and Time Cost Analysis". Submitted to Euro-Par 2002 --- European Conference on Parallel Computing, Paderborn, Germany, August 27-30, 2002. Submitted for publication.
[8] P.W. Trinder, K. Hammond, J.S. Mattson Jr., A. Partridge, S.L. Peyton Jones. "GUM: a Portable Parallel Implementation of Haskell". In PLDI'96 - Proceedings of Programming Languages Design and Implementation, Philadelphia, USA, 1996. <