Abstract
We precisely characterize a class of cyclic lambda-graphs, and then give a sound and complete axiomatization of the terms that represent a given graph. The equational axiom system is an extension of lambda calculus with the letrec construct. In contrast to current theories, which impose restrictions on where the rewriting can take place, our theory is very liberal, e.g., it allows rewriting under lambda-abstractions and on cycles. As shown previously, the reduction theory is non-confluent. We thus introduce an approximate notion of confluence. Using this notion we define the infinite normal form or Lévy-Longo tree of a cyclic term. We show that the infinite normal form defines a congruence on the set of terms. We relate our cyclic lambda calculus to the traditional lambda calculus and to the infinitary lambda calculus. Since most implementations of non-strict functional languages rely on sharing to avoid repeating computations, we develop a variant of our calculus that enforces the sharing of computations and show that the two calculi are observationally equivalent. For reasoning about strict languages we develop a call-by-value variant of the sharing calculus. We state the difference between strict and non-strict computations in terms of different garbage collection rules. We relate the call-by-value calculus to Moggi's computational lambda calculus and to Hasegawa's calculus.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Preview
Unable to display preview. Download preview PDF.
References
M. Abadi, L. Cardelli, P.-L. Curien, and J.-J. Lévy. Explicit substitutions. Journal of Functional Programming, 4(1):375–416, 1991.
Z. M. Ariola. Relating graph and term rewriting via Böhm models. Applicable Algebra in Engineering, Communication and Computing, 7(5), 1996.
Z. M. Ariola and S. Blom. Lambda calculi plus letrec. Technical Report CIS-TR97-05, Department of computer and information science, University of Oregon. ftp://ftp.cs.uoregon.edu/pub/ariola/cyclic-calculi.ps.
Z. M. Ariola and M. Felleisen. The call-by-need lambda calculus. Journal of Functional Programming, 7(3), 1997.
Z. M. Ariola, M. Felleisen, J. Maraist, M. Odersky, and P. Wadler. The call-byneed lambda calculus. In Proc. ACM Conference on Principles of Programming Languages, pages 233–246, 1995.
Z. M. Ariola and J. W. Klop. Lambda calculus with explicit recursion. Technical Report CIS-TR-96-04, Department of computer and information science, University of Oregon. To appear in Information and computation.
Z. M. Ariola and J. W. Klop. Cyclic lambda graph rewriting. In Proc. Ninth Symposium on Logic in Computer Science (LICS'94), Paris, France, pages 416–425, 1994.
Z. M. Ariola and J. W. Klop. Equational term graph rewriting. Fundamentae Informaticae, 26(3,4):207–240, 1996. Extended version: CWI Report CS-89552.
Z. M. Ariola, J. W. Klop, J. R. Kennaway, F. J. de Vries, and M. R. Sleep. Syntactic definitions of undefined: On defining the undefined. In Proc. TAGS 94, Sendai, Japan, 1994.
Arvind,L. Augusston, J. Hicks,R.S. Nikhil, S. Peyton-Jones, J. Stoy,and W. Williams. pH: A Parallel Haskell. Technical report, MIT Laboratory for Computer Science, September 1993.
Arvind, J-W. Maessen, R.S. Nikhil, and J. E. Stoy. λ s : an implicitly parallel λcalculus with letrec, synchronization and side-effects. Technical Report 393, MIT Laboratory for Computer Science, 1997.
A. Asperti and C. Laneve. Interaction systems I: The theory of optimal reductions. Mathematical structures for computer science, 4:457–504, 1994.
H. P. Barendregt. The Lambda Calculus: Its Syntax and Semantics. North-Holland, Amsterdam, 1984.
H. P. Barendregt, M. C. J. D. van Eekelen, J. R. W. Glauert, J. R. Kennaway, M. J. Plasmeijer, and M. R. Sleep. Term graph rewriting. In J. W. de Bakker, A. J. Nijman, and P. C. Treleaven, editors, Proc. Conference on Parallel Architecture and Languages Europe (PARLE '87), Eindhoven, The Netherlands, Springer-Verlag LNCS 259, pages 141–158, 1987.
Z. Benaissa, P. Lescanne, and K.H. Rose. Modeling sharing and recursion for weak reduction strategies using explicit substitution. In PLIP'96, 1996.
S. Billot and B. Lang. The structure of shared forests in ambiguous parsing. In Proceedings of the Twenty-Seventh Annual Meeting of the Association for Computational Linguistics, 1989. Association for Computational Linguistics.
B. Harper. Introduction to Standard ML. Technical report, ECS-LFCS-86-14, Laboratory for the Foundation of Computer Science, Edinburgh University, 1986.
M. Hasegawa. Recursion from cyclic sharing: traced monoidal categories and models of cyclic lambda calculi. In Proc. Conference on Typed Lambda Calculi and Applications, April 1997.
P. Hudak, S. Peyton Jones,P. Wadler, B. Boutel, J. Fairbairn, J. Fasel, K. Hammond, J. Hughes, T. Johnsson, D. Kieburtz, R. Nikhil, W. Partain, and J. Peterson. Report on the programming language Haskell. ACM SIGPLAN Notices, 27(5):1–64, 1992.
G. Huet. Confluent reductions: Abstract properties and applications to term rewriting systems. JACM, 27(4), I980.
J. R. Kennaway, J. W. Klop, M. R. Sleep, and F. J. de Vries. Infinitary lambda calculus. In Proc. Rewriting Techniques and Applications, Kaiserslautern, 1995.
P. Klint. A meta-environment for generating programming environments. In Algebraic Methods II: Theory, Tools and Applications. Springer-Verlag LNCS 490, pages 105–124, 1991.
P. Klint and E. Visser. Using filters for the disambiguation of context-free grammars. In G. Pighizzini and P. San Pietro, editors, Proc. ASMICS Workshop on Parsing Theory, pages 1–20, Milano, Italy, October 1994. Tech. Rep. 126-1994, Dipartimento di Science dell'Informazione, Universitá di Milano.
Y. Lafont. Interaction nets. In Proc. ACM Conference on Principles of Programming Languages, San Francisco, 1990.
J. Launchbury. A natural semantics for lazy evaluation. In Proc. ACM Conference on Principles of Programming Languages, pages 144–154, 1993.
J.-J. Lévy. An algebraic interpretation of the λβκ-calculus and an application of a labelled λ-calculus. Theoretical Computer Science, 2(1):97–114, 1976.
J.-J. Lévy. Réductions Correctes et Optimales dans le Lambda-Calcul. PhD thesis, Universite Paris VII, October 1978.
LC. Mackie. The geometry of implementation. PhD thesis, University of London, 1994.
J. Maraist, M. Odersky, D. Turner, and P. Wadler. Call-by-name, call-by-value, call-by-need, and the linear lambda calculus. In Proc. of Mathematical Foundations of Programming Semantics (MFPS), 1995.
E. Moggi. Computational lambda calculus and monads. Technical Report ECSLFCS-88-86, Edinburgh University, 1988.
J. Niehren. Functional computation as concurrent computation. In Proc. ACM Conference on Principles of Programming Languages, pages 333–343, 1996.
R. S. Nikhil. Id (version 90.1) reference manual. Technical Report 284-2, MIT Laboratory for Computer Science, 545 Technology Square, Cambridge, MA 02I39, 1991.
S. L. Peyton Jones.The implementation of Functional Programming Languages. Prentice-Hall International, Englewood Cliffs, N.J., 1987.
G. D. Plotkin. Call-by-name, call-by-value and the lambda calculus. Theoretical Computer Science, 1:125–159, 1975.
K. H. Rose. Explicit cyclic substitutions. In M. Rusinowitch and J. L. Rémy, editors, Proc. 3rd International Workshop on Conditional Term Rewriting Systems (CTRS-92), Pont-á-Mousson, France, Springer-Verlag LNCS 656, pages 36–50, 1992.
D. Sangiorgi and R. Milner. Techniques of “weak bisimulation up to”. Technical report, 1993.
P. Selinger. Order-incompleteness and finite lambda models. In Proc. Symposium on Logic in Computer Science (LICS'96), 1996.
M. Tomita. Efficient Parsing for Natural Languages. A Fast Algorithm for Practical Systems. Kluwer Academic Publishers, I985.
C. Wadsworth. Semantics and Pragmatics of the Lambda-Calculus. I971. PLD thesis, University of Oxford.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ariola, Z.M., Blom, S. (1997). Cyclic lambda calculi. In: Abadi, M., Ito, T. (eds) Theoretical Aspects of Computer Software. TACS 1997. Lecture Notes in Computer Science, vol 1281. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014548
Download citation
DOI: https://doi.org/10.1007/BFb0014548
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63388-4
Online ISBN: 978-3-540-69530-1
eBook Packages: Springer Book Archive