Abstract
In this paper we describe the full set of local program transformations implemented in the Glasgow Haskell Compiler. The transformations are presented as source to source transformations in a simple functional language. The idea is that by composing these simple and small high level transformations one can achieve most of the benefits of more complicated and specialised transformations, many of which are often implemented as code generation optimisations.
Sponsored by the Brazilian agency CAPES under contract 2323/91-5.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
A. Appel. Compiling with Continuations. Cambridge University Press, 1992.
A. Appel and T. Jim. Continuation-passing, closure-passing style. In ACM Conference on Principles of Programming Languages, pages 293302, January 1989.
W. N. Chin. Automatic Methods for Program Transformation. PhD thesis, Imperial College, London, March 1990.
A. Gill, J. Launchbury, and S. Peyton Jones. A short cut to deforestation. In Functional Programming Languages and Computer Architecture,pages 223–232, Copenhagen, June 1993. ACM Press.
R. J. M. Hughes. The Design and Implementation of Programming Languages. PhD thesis, Programming Research Group, Oxford University, July 1983.
T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In Functional Programming Languages and Computer Architecture,number 201 in LNCS, pages 190–203, Nancy, September 1985. Springer-Verlag.
R. Kelsey and P. Hudak. Realistic compilation by program transformation. In ACM Conference on Principles of Programming Languages, pages 281292, January 1989.
R. A. Kelsey. Compilation by Program Transformation. PhD thesis, Yale University, Department of Computer Science, May 1989. YALEU/DCS/RR-702.
D. A. Kranz. ORBIT - an optimising compiler for Scheme. PhD thesis, Yale University, Department of Computer Science, May 1988.
J. Launchbury and P. M. Sansom, editors. Functional Programming, Glasgow 1992, Ayr, Scotland, 1992. Springer Verlag, Workshops in Computing.
S. Marlow and P. Wadler. Deforestation for higher-order functions. In Launchbury and Sansom [10], pages 154–165.
B. Matthews. MERILL: An equational reasoning system in Standard ML. In 5th International Conference on Rewriting Techniques and Applications, number 690 in LNCS, pages 414–445. Springer-Verlag, 1993.
B. Matthews. Analysing a set of transformation rules using completion. 1994.
W. Partain. The nofib benchmarking suite. In Launchbury and Sansom [10].
S. Peyton Jones, C. Hall, K. Hammond, W. Partain, and P. Wadler. The Glasgow Haskell compiler: a technical overview. In UK Joint Framework for Information Technology (JFIT) Technical Conference, Keele, March 1993.
S. Peyton Jones and J. Launchbury. Unboxed values as first class citizens. In Functional Programming Languages and Computer Architecture, pages 636–666, September 1991.
S. Peyton Jones and D. Lester. A modular fully-lazy lambda lifter in Haskell. Software–Practice and Experience, 21 (5): 479–506, May 1991.
S. Peyton Jones and W. Partain. On the effectiveness of a simple strictness analyser. In Functional Programming, Glasgow 1993,Ayr, Scotland, 1993. Springer Verlag, Workshops in Computing.
P. Wadler. Deforestation: Transforming programs to eliminate trees. Theoretical Computer Science, 73: 231–248, 1990.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1995 Springer-Verlag London
About this paper
Cite this paper
Jones, S.P., Santos, A. (1995). Compilation by Transformation in the Glasgow Haskell Compiler. In: Hammond, K., Turner, D.N., Sansom, P.M. (eds) Functional Programming, Glasgow 1994. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3573-9_13
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3573-9_13
Publisher Name: Springer, London
Print ISBN: 978-3-540-19914-4
Online ISBN: 978-1-4471-3573-9
eBook Packages: Springer Book Archive