Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/232627.232630acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article
Free access

Let-floating: moving bindings to give faster programs

Published: 15 June 1996 Publication History

Abstract

Virtually every compiler performs transformations on the program it is compiling in an attempt to improve efficiency. Despite their importance, however, there have been few systematic attempts to categorise such transformations and measure their impact.In this paper we describe a particular group of transformations --- the "let-floating" transformations --- and give detailed measurements of their effect in an optimizing compiler for the non-strict functional language Haskell. Let-floating has not received much explicit attention in the past, but our measurements show that it is an important group of transformations (at least for lazy languages), offering a reduction of more than 30% in heap allocation and 15% in execution time.

References

[1]
AV Aho, R Sethi & JD Ullman {1986}, Compilers - principles, techniques and ~ools, Addison Wesley.
[2]
AW Appel {1992}, Compiling with continuations, Cambridge University Press.
[3]
Z Ariola, M Felleisen, J Maraist, M Odersky & P Wadler {Jan 1995}, "A call by need lambda calculus," in 21st ACM Symposium on Principles of Programming Languages, San Francisco, ACM.
[4]
DF Bacon, SL Graham gc OJ Sharp {Dec 1994}, "Compiler transformations for high-performance computing," ACM Computing Surveys 26, 345-420.
[5]
C Flanagan, A Sabry, B Duba & M Felleisen {June 1993}, "The essence of compiling with continuations," SIC- PLAN Notices 28, 237-247.
[6]
S Fortune, D Leivant & M O'Donnell{Jan 1983}, "The expressiveness of simple and second-order type structures,'' JACM 30, 151-185.
[7]
P Fradet gc D Le Metayer {Jan 1991}, "Compilation of functional languages by program transformation," A CM Transactions on Programming Languages and Systems 13, 21-51.
[8]
AJ Gill {Jan 1996}, "Cheap deforestation for non-strict functional languages," PhD thesis, Department of Computing Science, Glasgow University.
[9]
P Hudak, SL Peyton Jones, PL Wadler, Arvind, B Boutel, J Fairbairn, J Fasel, M Guzman, K Hammond, J Hughes, T Johnsson, R Kieburtz, RS Nikhil, W Partain &: J Peterson{May 1992}, "Report on the functional programming language HaskeI1, Version 1.2," SIGPLAN Notices 27.
[10]
RJM Hughes {July 1983}, "The design and implementation of programming languages," PhD thesis, Programming Research Group, Oxford.
[11]
R Kelsey {May 1989}, "Compilation by program transformation,'' YALEU/DCS/RR-702, PhD thesis, Department of Computer Science, Yale University.
[12]
R Kelsey 8e P Hudak {Jan 1989}, "Realistic compilation by program transformation," in Proc A CM Conference on Principles of Programming Languages, ACM, 281-292.
[13]
DA Kranz {May 1988}, "ORBIT- an optimising compiler for Scheme," PhD thesis, Department of Computer Science, Yale University.
[14]
DA Kranz, R Kelsey, J Rees, P Hudak, J Philbin & N Adams {1986}, "ORBIT - an optimising compiler for Scheme," in Proc SIGPLAN Symposium on Cornprier Construction, ACM.
[15]
J Launchbury {Jan 1993}, "A natural semantics for lazy evaluation,'' in 20th ACM Symposium on Principles of Programming Languages, Charleston, ACM, 144- 154.
[16]
WD Partain {1993}, "The nofib Benchmark Suite of Haskell Programs," in Functional Programming, Glasgow 1992, J Launchbury & PM Sansom, eds., Workshops in Computing, Springer Verlag, 195-202.
[17]
SL Peyton Jones {1987}, The Implemenia,ion of Functional Programming Languages, Prentice Hall.
[18]
SL Peyton Jones {Apr 1992}, "Implementing lazy functional languages on stock hardware: the Spineless Tagless G-machine," Journal of Functional Programming 2, 127-202.
[19]
SL Peyton Jones, CV Hall, K Hammond, WD Partain & PL Wadler {March 1993}, "The Glasgow Haskell compiler: a technical overview," in Proceedings of Joint Framework /or Information Technology Technical Conference, Keele, DTI/SERC, 249-257.
[20]
SL Peyton Jones gc J Launchbury{Sept 1991}, "Unboxed values as first class citizens," in Functional Programming Languages and Computer Architecture, Boston, Hughes, ed., LNCS 523, Springer Verlag, 636-666.
[21]
SL Peyton Jones ~ D Lester {May 1991}, "A modular fullylazy lambda lifter in HASKELL," Software - Practice and Experience 21,479-506.
[22]
SL Peyton Jones & WD Partain {1993}, "Measuring the effectiveness of a simple strictness analyser," in Funciional Programming, Glasgow 1993, K Hammond & JT O'Donnell, eds., Workshops in Computing, Springer Verlag, 201-220.
[23]
SL Peyton Jones & A Santos {1994}, "Compilation by transformation in the Glasgow Haskell Compiler," in Functional Programming, Glasgow 1994, K Hammond, DN Turner g~ PM Sansom, eds., Workshops in Computing, Springer Verlag, 184-204.
[24]
A Santos {Sept 1995}, "Compilation by transformation in non-strict functional languages," PhD thesis, Department of Computing Science, Glasgow University.
[25]
JE Smith {Oct 1988}, "Characterising computer performance with a single number," Communications of the A CM 31, 1202-1207.

Cited By

View all
  • (2021)Union and intersection contracts are hard, actuallyProceedings of the 17th ACM SIGPLAN International Symposium on Dynamic Languages10.1145/3486602.3486767(1-11)Online publication date: 19-Oct-2021
  • (2018)Compiling for concise code and efficient I/OProceedings of the 27th International Conference on Compiler Construction10.1145/3178372.3179505(104-115)Online publication date: 24-Feb-2018
  • (2017)Compiling without continuationsACM SIGPLAN Notices10.1145/3140587.306238052:6(482-494)Online publication date: 14-Jun-2017
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICFP '96: Proceedings of the first ACM SIGPLAN international conference on Functional programming
June 1996
273 pages
ISBN:0897917707
DOI:10.1145/232627
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 June 1996

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

ICFP96
Sponsor:
ICFP96: International Conference on Functional Programming
May 24 - 26, 1996
Pennsylvania, Philadelphia, USA

Acceptance Rates

ICFP '96 Paper Acceptance Rate 25 of 83 submissions, 30%;
Overall Acceptance Rate 333 of 1,064 submissions, 31%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)122
  • Downloads (Last 6 weeks)20
Reflects downloads up to 18 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2021)Union and intersection contracts are hard, actuallyProceedings of the 17th ACM SIGPLAN International Symposium on Dynamic Languages10.1145/3486602.3486767(1-11)Online publication date: 19-Oct-2021
  • (2018)Compiling for concise code and efficient I/OProceedings of the 27th International Conference on Compiler Construction10.1145/3178372.3179505(104-115)Online publication date: 24-Feb-2018
  • (2017)Compiling without continuationsACM SIGPLAN Notices10.1145/3140587.306238052:6(482-494)Online publication date: 14-Jun-2017
  • (2017)Futhark: purely functional GPU-programming with nested parallelism and in-place array updatesACM SIGPLAN Notices10.1145/3140587.306235452:6(556-571)Online publication date: 14-Jun-2017
  • (2017)Compiling without continuationsProceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3062341.3062380(482-494)Online publication date: 14-Jun-2017
  • (2017)Futhark: purely functional GPU-programming with nested parallelism and in-place array updatesProceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3062341.3062354(556-571)Online publication date: 14-Jun-2017
  • (2017)Optimisation of language-integrated queries by query unnestingComputer Languages, Systems and Structures10.1016/j.cl.2016.09.00247:P2(131-150)Online publication date: 1-Jan-2017
  • (2014)Modular, higher-order cardinality analysis in theory and practiceACM SIGPLAN Notices10.1145/2578855.253586149:1(335-347)Online publication date: 8-Jan-2014
  • (2014)Modular, higher-order cardinality analysis in theory and practiceProceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages10.1145/2535838.2535861(335-347)Online publication date: 11-Jan-2014
  • (2013)Causality of optimized HaskellACM SIGPLAN Notices10.1145/2578854.250378848:12(141-152)Online publication date: 23-Sep-2013
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media