2014
DOI: 10.1145/2692915.2628148
|View full text |Cite
|
Sign up to set email alerts
|

Maximal sharing in the Lambda calculus with letrec

Abstract: Increasing sharing in programs is desirable to compactify the code, and to avoid duplication of reduction work at run-time, thereby speeding up execution. We show how a maximal degree of sharing can be obtained for programs expressed as terms in the lambda calculus with letrec. We introduce a notion of 'maximal compactness' for λ letrec -terms among all terms with the same infinite unfolding. Instead of defined purely syntactically, this notion is based on a graph semantics. λ letrec -terms are interpreted as … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
21
0

Year Published

2014
2014
2021
2021

Publication Types

Select...
3
2

Relationship

4
1

Authors

Journals

citations
Cited by 6 publications
(21 citation statements)
references
References 18 publications
(17 reference statements)
0
21
0
Order By: Relevance
“…The implementation is available at http://hackage.haskell.org/package/maxsharing/. Output produced for three examples from this paper, and explanations for it, can be found in Appendix B; for all examples in [16].…”
Section: Methodsmentioning
confidence: 99%
See 2 more Smart Citations
“…The implementation is available at http://hackage.haskell.org/package/maxsharing/. Output produced for three examples from this paper, and explanations for it, can be found in Appendix B; for all examples in [16].…”
Section: Methodsmentioning
confidence: 99%
“…In order to formally define the infinite unfolding of λ letrec -terms we utilise a CRS whose rewrite rules formalise unfolding steps [11]. Every λ letrec -term L that represents an infinite λ-term M can be rewritten by a typically infinite rewrite sequence that converges to M in the limit.…”
Section: Unfolding Semantics Of λ Letrec -Termsmentioning
confidence: 99%
See 1 more Smart Citation
“…There are two variants, one with and one without an edge (a back-link) from each variable occurrence to its corresponding abstraction vertex. The class with back-links is related to higher-order term graphs as defined by Blom in [4], and in fact is an adaptation of that concept for the purpose of representing λ -terms.abstraction-prefix based λ -higher-order-term-graphs (Section 4) do not have a scope function but assign, to each vertex w, an abstraction prefix consisting of a word of abstraction vertices that includes those abstractions for which w is in their scope (it actually lists all abstractions for which w is in their 'extended scope' [7]). Abstraction prefixes are aggregations of scope information that is relevant for and locally available at individual vertices.λ -term-graphs with scope delimiters (Section 5) are plain first-order term graphs intended to represent higher-order term graphs of the two sorts above, and in this way stand for λ -terms.…”
mentioning
confidence: 99%
“…abstraction-prefix based λ -higher-order-term-graphs (Section 4) do not have a scope function but assign, to each vertex w, an abstraction prefix consisting of a word of abstraction vertices that includes those abstractions for which w is in their scope (it actually lists all abstractions for which w is in their 'extended scope' [7]). Abstraction prefixes are aggregations of scope information that is relevant for and locally available at individual vertices.…”
mentioning
confidence: 99%