Skip to main content

Cyclic lambda calculi

  • Conference paper
  • First Online:
Theoretical Aspects of Computer Software (TACS 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1281))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. M. Abadi, L. Cardelli, P.-L. Curien, and J.-J. Lévy. Explicit substitutions. Journal of Functional Programming, 4(1):375–416, 1991.

    Google Scholar 

  2. Z. M. Ariola. Relating graph and term rewriting via Böhm models. Applicable Algebra in Engineering, Communication and Computing, 7(5), 1996.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. Z. M. Ariola and M. Felleisen. The call-by-need lambda calculus. Journal of Functional Programming, 7(3), 1997.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. A. Asperti and C. Laneve. Interaction systems I: The theory of optimal reductions. Mathematical structures for computer science, 4:457–504, 1994.

    Google Scholar 

  13. H. P. Barendregt. The Lambda Calculus: Its Syntax and Semantics. North-Holland, Amsterdam, 1984.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. Z. Benaissa, P. Lescanne, and K.H. Rose. Modeling sharing and recursion for weak reduction strategies using explicit substitution. In PLIP'96, 1996.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. B. Harper. Introduction to Standard ML. Technical report, ECS-LFCS-86-14, Laboratory for the Foundation of Computer Science, Edinburgh University, 1986.

    Google Scholar 

  18. 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.

    Google Scholar 

  19. 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.

    Google Scholar 

  20. G. Huet. Confluent reductions: Abstract properties and applications to term rewriting systems. JACM, 27(4), I980.

    Google Scholar 

  21. 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.

    Google Scholar 

  22. 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.

    Google Scholar 

  23. 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.

    Google Scholar 

  24. Y. Lafont. Interaction nets. In Proc. ACM Conference on Principles of Programming Languages, San Francisco, 1990.

    Google Scholar 

  25. J. Launchbury. A natural semantics for lazy evaluation. In Proc. ACM Conference on Principles of Programming Languages, pages 144–154, 1993.

    Google Scholar 

  26. 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.

    Google Scholar 

  27. J.-J. Lévy. Réductions Correctes et Optimales dans le Lambda-Calcul. PhD thesis, Universite Paris VII, October 1978.

    Google Scholar 

  28. LC. Mackie. The geometry of implementation. PhD thesis, University of London, 1994.

    Google Scholar 

  29. 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.

    Google Scholar 

  30. E. Moggi. Computational lambda calculus and monads. Technical Report ECSLFCS-88-86, Edinburgh University, 1988.

    Google Scholar 

  31. J. Niehren. Functional computation as concurrent computation. In Proc. ACM Conference on Principles of Programming Languages, pages 333–343, 1996.

    Google Scholar 

  32. 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.

    Google Scholar 

  33. S. L. Peyton Jones.The implementation of Functional Programming Languages. Prentice-Hall International, Englewood Cliffs, N.J., 1987.

    Google Scholar 

  34. G. D. Plotkin. Call-by-name, call-by-value and the lambda calculus. Theoretical Computer Science, 1:125–159, 1975.

    Google Scholar 

  35. 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.

    Google Scholar 

  36. D. Sangiorgi and R. Milner. Techniques of “weak bisimulation up to”. Technical report, 1993.

    Google Scholar 

  37. P. Selinger. Order-incompleteness and finite lambda models. In Proc. Symposium on Logic in Computer Science (LICS'96), 1996.

    Google Scholar 

  38. M. Tomita. Efficient Parsing for Natural Languages. A Fast Algorithm for Practical Systems. Kluwer Academic Publishers, I985.

    Google Scholar 

  39. C. Wadsworth. Semantics and Pragmatics of the Lambda-Calculus. I971. PLD thesis, University of Oxford.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Martín Abadi Takayasu Ito

Rights and permissions

Reprints 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

Publish with us

Policies and ethics