Abstract
We give an axiomatic presentation of sharing-via-labelling for weak lambda-calculi, that makes it possible to formally compare many different approaches to fully lazy sharing, and obtain two important results. We prove that the known implementations of full laziness are all equivalent in terms of the number of beta-reductions performed, although they behave differently regarding the duplication of terms. We establish a link between the optimality theories of weak lambda-calculi and first-order rewriting systems by expressing fully lazy lambda-lifting in our framework, thus emphasizing the first-order essence of weak reduction.
Supplemental Material
- Z.M. Ariola and M. Felleisen. The call-by-need lambda calculus. J. Funct. Program., 7(3):265--301, 1997. Google Scholar
Digital Library
- Z.M. Ariola, M. Felleisen, J. Maraist, M. Odersky, and P. Wadler. The call-by-need lambda calculus. In POPL, pages 233--246, 1995. Google Scholar
Digital Library
- A. Asperti and S. Guerrini. The optimal implementation of functional programming languages. Cambridge University Press, 1998. Google Scholar
Digital Library
- A. Asperti and H.G. Mairson. Parallel Beta Reduction is not Elementary Recursive. In POPL, pages 303--315, 1998. Google Scholar
Digital Library
- T. Balabonski. A Unified Approach to Fully Lazy Sharing. http://hal.archives-ouvertes.fr/hal-00637048/. Rapport technique PPS, 2011.Google Scholar
- H.P. Barendregt, R. Kennaway, J-W. Klop, and M. Ronan Sleep. Needed reduction and spine strategies for the lambda calculus. Inf. Comput., 75(3):191--231, 1987. Google Scholar
Digital Library
- T. Blanc, J.-J. Lévy, and L. Maranget. Sharing in the Weak Lambda-Calculus Revisited. In Reflections on Type Theory, Lambda Calculus and the Mind, 2007.Google Scholar
- H.J.S. Bruggink. Residuals in higher-order rewriting. In RTA, pages 123--137, 2003. Google Scholar
Digital Library
- N. Çagman and J. R. Hindley. Combinatory weak reduction in lambda calculus. TCS, 198(1--2):239--247, 1998. Google Scholar
Digital Library
- O. Danvy, K. Millikin, J. Munk, and I. Zerny. Defunctionalized Interpreters for Call-by-Need Evaluation. In FLOPS, pages 240--256, 2010. Google Scholar
Digital Library
- D. Dougherty, P. Lescanne, L. Liquori, and F. Lang. Addressed Term Rewriting Systems: Syntax, Semantics, and Pragmatics: Extended Abstract. ENTCS, 127(5):57--82, 2005. Google Scholar
Digital Library
- J. Glauert and Z. Khasidashvili. Relative normalization in deterministic residual structures. In CAAP, pages 180--195, 1996. Google Scholar
Digital Library
- J.R.W. Glauert, D. Kesner, and Z. Khasidashvili. Expression reduction systems and extensions: An overview. In Processes, Terms and Cycles, pages 496--553, 2005. Google Scholar
Digital Library
- C.K. Holst and D.K. Gomard. Partial evaluation is fuller laziness. In PEPM, pages 223--233, 1991. Google Scholar
Digital Library
- R.J.M. Hughes. Super combinators: A new implementation method for applicative languages. In LFP, pages 1--10, 1982. Google Scholar
Digital Library
- T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In FPCA, pages 190--203, 1985. Google Scholar
Digital Library
- S. Peyton Jones. The Implementation of Functional Programming Languages. Prentice-Hall, Inc., 1987. Google Scholar
Digital Library
- J.W. Klop, V. van Oostrom, and F. van Raamsdonk. Combinatory reduction systems: Introduction and survey. Theor. Comput. Sci., 121(1&2):279--308, 1993. Google Scholar
Digital Library
- J. Lamping. An algorithm for optimal lambda calculus reduction. In POPL, pages 16--30, 1990. Google Scholar
Digital Library
- J. Launchbury. A natural semantics for lazy evaluation. In POPL, pages 144--154, 1993. Google Scholar
Digital Library
- U. Dal Lago and S. Martini. On constructor rewrite systems and the lambda-calculus. In ICALP (2), pages 163--174, 2009. Google Scholar
Digital Library
- J.-J. Lévy. Optimal reductions in the lambda-calculus. In To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalisms, pages 159--191, 1980.Google Scholar
- L. Maranget. Optimal Derivations in Weak Lambda-calculi and in Orthogonal Terms Rewriting Systems. In POPL, pages 255--269, 1991. Google Scholar
Digital Library
- M. Pedicini and F. Quaglia. Pelcr: Parallel environment for optimal lambda-calculus reduction. ACM Trans. Comput. Logic, 8, July 2007. Google Scholar
Digital Library
- P. Sestoft. Deriving a lazy abstract machine. J. Funct. Program., 7(3):231--264, 1997. Google Scholar
Digital Library
- O. Shivers and M. Wand. Bottom-up β-reduction: Uplinks and ł-DAGs. In ESOP, pages 217--232, 2005. Google Scholar
Digital Library
- Terese. Term Rewriting Systems. Cambridge Univ.! Press, 2003.Google Scholar
- D.A. Turner. A new implementation technique for applicative languages. In Softw., Pract. Exper., 9(1):31--49, 1979.Google Scholar
Cross Ref
- V. van Oostrom. Higher-order families. In RTA, pages 392--407, 1996. Google Scholar
Digital Library
- C. P. Wadsworth. Semantics and Pragmatics of the Lambda Calculus. Ph.D. thesis, 1971.Google Scholar
- N. Yoshida. Optimal reduction in weak-ł-calculus with shared environments. J. of Computer Software, 11(5):2--20, 1994.Google Scholar
Index Terms
A unified approach to fully lazy sharing
Recommendations
A unified approach to fully lazy sharing
POPL '12: Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesWe give an axiomatic presentation of sharing-via-labelling for weak lambda-calculi, that makes it possible to formally compare many different approaches to fully lazy sharing, and obtain two important results. We prove that the known implementations of ...
Weak optimality, and the meaning of sharing
ICFP '13In this paper we investigate laziness and optimal evaluation strategies for functional programming languages. We consider the weak lambda-calculus as a basis of functional programming languages, and we adapt to this setting the concepts of optimal ...
Weak optimality, and the meaning of sharing
ICFP '13: Proceedings of the 18th ACM SIGPLAN international conference on Functional programmingIn this paper we investigate laziness and optimal evaluation strategies for functional programming languages. We consider the weak lambda-calculus as a basis of functional programming languages, and we adapt to this setting the concepts of optimal ...







Comments