Proceedings of the 2012 Annual Workshop on Scheme and Functional Programming 2012
DOI: 10.1145/2661103.2661106
|View full text |Cite
|
Sign up to set email alerts
|

Optimizing closures in O(0) time

Abstract: The flat-closure model for the representation of first-class procedures is simple, safe-for-space, and efficient, allowing the values or locations of free variables to be accessed with a single memory indirect. It is a straightforward model for programmers to understand, allowing programmers to predict the worst-case behavior of their programs. This paper presents a set of optimizations that improve upon the flat-closure model along with an algorithm that implements them, and it shows that the optimizations to… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
3
0

Year Published

2013
2013
2021
2021

Publication Types

Select...
4
3

Relationship

1
6

Authors

Journals

citations
Cited by 7 publications
(3 citation statements)
references
References 11 publications
0
3
0
Order By: Relevance
“…Our implementation ideas were based on flat-closure conversion approach [Dybvig, 1987, Section 4.4] in combination with assignment conversion [Dybvig, 1987, Section 4.5]. A later work [Keep, Hearn, and Dybvig, 2012] discusses the kinds of optimizations that implementors of nested functions should perform. But the basic implementation ideas inspired the language side of the Gforth extension, and eventually the present paper, and there such optimizations are unnecessary (or left to the programmer).…”
Section: Related Workmentioning
confidence: 99%
“…Our implementation ideas were based on flat-closure conversion approach [Dybvig, 1987, Section 4.4] in combination with assignment conversion [Dybvig, 1987, Section 4.5]. A later work [Keep, Hearn, and Dybvig, 2012] discusses the kinds of optimizations that implementors of nested functions should perform. But the basic implementation ideas inspired the language side of the Gforth extension, and eventually the present paper, and there such optimizations are unnecessary (or left to the programmer).…”
Section: Related Workmentioning
confidence: 99%
“…The representation of closure environments is crucial to the design of a closure conversion algorithm. Several closure representations have been proposed, each of them trying to optimize metrics such as space consumption, number of accesses to the environment, and closure creation time [Keep et al 2012;Appel 1994, 2000]. However, the choice of representation may affect the space-safety of a program.…”
Section: Closure Representationmentioning
confidence: 99%
“…These passes implement most of the optimizations from the original compiler and improve on some, including support for implicit cross-library optimization, improvements to closure optimization [15], and improved handling of procedures that return multiple values.…”
Section: Workings Of the New Compilermentioning
confidence: 99%