Proceedings of the 19th ACM SIGPLAN International Conference on Functional Programming 2014
DOI: 10.1145/2628136.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
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
13
0

Year Published

2014
2014
2024
2024

Publication Types

Select...
5
3

Relationship

4
4

Authors

Journals

citations
Cited by 11 publications
(13 citation statements)
references
References 15 publications
0
13
0
Order By: Relevance
“…Despite quadratic and quasi-linear recent algorithms [6], [37] for testing equality of terms with ES, we discovered that a linear algorithm can be obtained slightly modifying an algorithm already known quite some time before (1976! ): the Paterson-Wegman linear unification algorithm [38] (better explained in [39]).…”
Section: ) Low-level Bilinear Implementationmentioning
confidence: 99%
“…Despite quadratic and quasi-linear recent algorithms [6], [37] for testing equality of terms with ES, we discovered that a linear algorithm can be obtained slightly modifying an algorithm already known quite some time before (1976! ): the Paterson-Wegman linear unification algorithm [38] (better explained in [39]).…”
Section: ) Low-level Bilinear Implementationmentioning
confidence: 99%
“…First, the already cited quadratic one by Acca oli and Dal Lago. Second, a O(n log n) algorithm by Grabmayer and Rochel [21] (where n is the sum of the sizes of the shared terms to compare, and the input of the algorithm is a graph), obtained by a reduction to equivalence of DFAs and treating the more general case of λ-terms with letrec.…”
Section: Computing Sharing Equalitymentioning
confidence: 99%
“…On this basis Jan Rochel and I developed a 'representation pipeline' from higher-order terms to deterministic finite-state automata (DFAs): (1) Terms in the λ -calculus with letrec can be represented by appropriately defined higher-order term graphs, which are first-order term graphs together with higherorder features such as a scope function, or an abstraction prefix function, that are defined on the set of vertices (see [12]); (2) higher-order term graphs are encoded as first-order term graphs (see also [12]), and (3) first-order term graphs are represented as DFAs (see [13]). In this way unfolding equivalence on terms is represented by bisimulation equivalence on term graphs (higher-order and first-order), and ultimately, by language equivalence of DFAs.…”
Section: Maximal Sharing Of Functional Programsmentioning
confidence: 99%