Skip to main content

A chemical abstract machine for graph reduction extended abstract

  • Conference paper
  • First Online:
Mathematical Foundations of Programming Semantics (MFPS 1993)

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

Abstract

Graph reduction is an implementation technique for the lazy λ-calculus. It has been used to implement many non-strict functional languages, such as lazy ml, Gofer and Miranda. Parallel graph reduction allows for concurrent evaluation. In this paper, we present parallel graph reduction as a Chemical Abstract Machine, and show that the resulting testing semantics is adequate wrt testing equivalence for the lazy λ - calculus. We also present a π-calculus implementation of the graph reduction machine, and show that the resulting testing semantics is also adequate.

This work was supported by SERC project GR/H 16537. Miranda is a trademark of Research Software Limited.

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

  • Abramsky, S. (1989). The lazy lambda calculus. In Turner, D., editor, Declarative Programming. Addison-Wesley.

    Google Scholar 

  • Augustsson, L. (1984). A compiler for lazy ML. In Proc. ACM Symp. Lisp and Functional Programming, pages 218–227.

    Google Scholar 

  • Barendregt, H. (1984). The Lambda Calculus. North-Holland. Studies in logic 103.

    Google Scholar 

  • Barendregt, H. P., Van Eekelen, M. C. J. D., Glauert, J. R. W., Kennaway, J. R., Plasmeijer, M. J., and Sleep, M. R. (1987). Term graph rewriting. In Proc. PARLE 87, volume 2, pages 141–158. Springer-Verlag. LNCS 259.

    Google Scholar 

  • Berry, G. and Boudol, G. (1990). The chemical abstract machine. In Proc. 17th Ann. Symp. Principles of Programming Languages.

    Google Scholar 

  • Boudol, G. (1992). Asynchrony and the pi-calculus. INRIA Sophia-Antipolis.

    Google Scholar 

  • Church, A. (1941). The Calculi of Lambda Conversion. Princeton University Press.

    Google Scholar 

  • Hughes, R. J. M. (1984). The Design and Implementation of Programming Languages. D.Phil thesis, Oxford University.

    Google Scholar 

  • Jeffrey, A. (1992). A chemical abstract machine for graph reduction. Technical report 3/92, University of Sussex.

    Google Scholar 

  • Johnnson, T. (1984). Effecient compilation of lazy evaluation. In Proc.Sigplan 84 Symp.Compiler Construction, pages 58–69.

    Google Scholar 

  • Jones, M. (1992). The Gofer technical manual. Part of the Gofer distribution.

    Google Scholar 

  • Lester, D. (1989). Combinator Graph Reduction: A Congruence and its Applications. D.Phil thesis, Oxford University.

    Google Scholar 

  • Mccarthy, J., Abrahams, P. W., Edwards, D. J., Hart, T. P., and Levin, M. I. (1962). The Lisp 1.5 Programmers Kit. MIT Press.

    Google Scholar 

  • Milner, R. (1989). Communication and Concurrency. Prentice-Hall.

    Google Scholar 

  • Milner, R. (1991). The polyadic π-calculus: a tutorial. In Proc. International Summer School on Logic and Algebra of Specification, Marktoberdorf.

    Google Scholar 

  • Milner, R. (1992). Functions as processes. Math. Struct. in Comput. Science, 2:119–141.

    Google Scholar 

  • Milner, R., Parrow, J., and Walker, D. (1989). A calculus of mobile processes. Technical reports ECS-LFCS-89-86 and-87, LFCS, University of Edinburgh.

    Google Scholar 

  • Peyton Jones, S. (1987). The Implementation of Functional Programming Languages. Prentice-Hall.

    Google Scholar 

  • Sangiorgi, D. (1991). The lazy lambda calculus in a concurrency scenario. Technical Report ECS-LFCS-91-189, LFCS, Edinburgh University.

    Google Scholar 

  • Stoye, W. R., Clarke, T. J. W., and Norman, A. C. (1984). Some practical methods for rapid combinator reduction. In Proc. ACM Symp. Lisp and Functional Programming, pages 159–166.

    Google Scholar 

  • Turner, D. (1985). Miranda: A non-strict functional language with polymorphic types. In Proc. IFIP Conf. Functional Programming Languages and Computer Architecture. Springer-Verlag. LNCS 201.

    Google Scholar 

  • Wadsworth, C. P. (1971). Semantics and Pragmatics of the Lambda Calculus. D.Phil thesis, Oxford University.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Stephen Brookes Michael Main Austin Melton Michael Mislove David Schmidt

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Jeffrey, A. (1994). A chemical abstract machine for graph reduction extended abstract. In: Brookes, S., Main, M., Melton, A., Mislove, M., Schmidt, D. (eds) Mathematical Foundations of Programming Semantics. MFPS 1993. Lecture Notes in Computer Science, vol 802. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58027-1_14

Download citation

  • DOI: https://doi.org/10.1007/3-540-58027-1_14

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58027-0

  • Online ISBN: 978-3-540-48419-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics