Skip to main content

The semantics of pcall and fork in the presence of first-class continuations and side-effects

  • Evaluation Strategies
  • Conference paper
  • First Online:
Parallel Symbolic Languages and Systems (PSLS 1995)

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

Included in the following conference series:

  • 141 Accesses

Abstract

We present the semantics of the annotations pcall and fork for parallel evaluation of Scheme. Annotated programs are proved to be behaviourly indistinguishable from their non-annotated counterparts, even in the presence of first-class continuations and side-effects. The semantics takes the form of an abstract machine, which can be regarded as a guideline for an implementation.

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. Andrew W. Appel and David B. MacQueen. Standard ML of New Jersey. In Jan Maluszynski and Martin Wirsing, editors, Third International Symposium on Programming Language Implementation and Logic Programming, number 528 in Lecture Notes in Computer Science, pages 1–13, Passau, Germany, August 1991. Springer-Verlag.

    Google Scholar 

  2. Henry Baker and Carl Hewitt. The Incremental Garbage Collection of Processes. Technical Report AI Memo 454, M.I.T., Cambridge, Massachussets, March 1977.

    Google Scholar 

  3. Henk P. Barendregt. The Lambda Calculus: Its Syntax and Semantics, volume 103 of Studies in Logic and the Foundations of Mathematics, North-Holland, second edition, 1984.

    Google Scholar 

  4. Marc Feeley. An Efficient and General Implementation of Futures on Large Scale Shared-Memory Multiprocessors. PhD thesis, Brandeis University, 1993.

    Google Scholar 

  5. Matthias Felleisen. On the Expressive Power of Programming Languages. In Proc. European Symposium on Programming, number 432 in Lecture Notes in Computer Science, pages 134–151. Springer-Verlag, 1990.

    Google Scholar 

  6. Matthias Felleisen and Daniel P. Friedman. Control Operators, the SECD-Machine and the λ-Calculus. In M. Wirsing, editor, Formal Description of Programming Concepts III, pages 193–217, Amsterdam, 1986. Elsevier Science Publishers B.V. (North-Holland).

    Google Scholar 

  7. Matthias Felleisen and Daniel P. Friedman. A Calculus for Assignments In Higher-Order Languages. In Proceedings of the Fourtheen Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pages 314–345, Munich, W. Germany, January 1987.

    Google Scholar 

  8. Matthias Felleisen and Daniel P. Friedman. A Reduction Semantics for Imperative Higher-Order Languages. In Proc. Conf. on Parallel Architecture and Languages Europe, number 259 in Lecture Notes in Computer Science, pages 206–223. Springer-Verlag, 1987.

    Google Scholar 

  9. Matthias Felleisen and Robert Hieb. The Revised Report on the Syntactic Theories of Sequential Control and State. Theoretical Computer Science, 2(4):235–271, 1992. Technical Report 100, Rice University, June 1989.

    Google Scholar 

  10. Cormac Flanagan and Matthias Felleisen. The Semantics of Future and Its Use in Program Optimization. In Proceedings of the Twenty Second Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, January 1995. Technical Reports 238, 239, Rice University, 1994.

    Google Scholar 

  11. Robert H. Halstead, Jr. New Ideas in Parallel Lisp: Language Design, Implementation. In T. Ito and Robert H. Halstead, editors, Parallel Lisp: Languages and Systems. US/Japan Workshop on Parallel Lisp. Japan., number 441 in Lecture Notes in Computer Science, pages 2–57. Springer-Verlag, 1990.

    Google Scholar 

  12. Christopher T. Haynes, Daniel P. Friedman, and Mitchell Wand. Obtaining Coroutines with Continuations. Comput. Lang., 11(3/4):143–153, 1986.

    Google Scholar 

  13. Nevin Heintze. Set-Based Analysis of ML Programs. In Proceedings of the 1994 ACM Conference on Lisp and Functional Programming, pages 306–317, Orlando, Florida, June 1994.

    Google Scholar 

  14. Takayasu Ito and Manabu Matsui. A Parallel Lisp Language Pailisp and its Kernel Specification. In T. Ito and Robert H. Halstead, editors, Parallel Lisp: Languages and Systems. US/Japan Workshop on Parallel Lisp. Japan., number 441 in Lecture Notes in Computer Science, pages 58–100. Springer-Verlag, 1990.

    Google Scholar 

  15. Takayasu Ito and Tomohiro Seino. On Pailisp Continuation and its Implementation. In Proceedings of the ACM SIGPLAN workshop on Continuations CW92, pages 73–90, San Francisco, June 1992.

    Google Scholar 

  16. Morry Katz and Daniel Weise. Continuing Into the Future: On the Interaction of Futures and First-Class Continuations. In Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, pages 176–184, June 1990.

    Google Scholar 

  17. James S. Miller. MultiScheme: A Parallel Processing System Based on MIT Scheme. PhD thesis, MIT, 1987.

    Google Scholar 

  18. Luc Moreau. An Operational Semantics for a Parallel Language with Continuations. In D. Etiemble and J.-C. Syre, editors, Parallel Architectures and Languages Europe (PARLE'92), number 605 in Lecture Notes in Computer Science, pages 415–430, Paris, June 1992. Springer-Verlag.

    Google Scholar 

  19. Luc Moreau. The PCKS-machine. An Abstract Machine for Sound Evaluation of Parallel Functional Programs with First-Class Continuations. In European Symposium on Programming (ESOP'94), number 788 in Lecture Notes in Computer Science, pages 424–438, Edinburgh, Scotland, April 1994. Springer-Verlag.

    Google Scholar 

  20. Luc Moreau. Sound Evaluation of Parallel Functional Programs with First-Class Continuations. PhD thesis, University of Liège, Service d'Informatique, Institut Montefiore B28, 4000 Liège, Belgium, June 1994. Also available by anonymous ftp from ftp.montefiore.ulg.ac.be in directory pub/moreau.

    Google Scholar 

  21. Luc Moreau. Non-speculative and Upward Invocation of Continuations in a Parallel Language. In International Joint Conference on Theory and Practice of Software Development (TAPSOFT/FASE'95), number 915 in Lecture Notes in Computer Science, pages 726–740, Aarhus, Denmark, May 1995.

    Google Scholar 

  22. Luc Moreau and Daniel Ribbens. Sound Rules for Parallel Evaluation of a Functional Language with callcc. In ACM conference on Functional Programming and Computer Architecture (FPCA'93), pages 125–135, Copenhagen, June 1993.

    Google Scholar 

  23. Gordon D. Plotkin. Call-by-Name, Call-by-Value and the λ-Calculus. Theoretical Computer Science, pages 125–159, 1975.

    Google Scholar 

  24. Christian Queinnec. Locality, Causality and Continuations. In Proceedings of the 1994 ACM Conference on Lisp and Functional Programming, Orlando, Florida, June 1994.

    Google Scholar 

  25. Christian Queinnec and David De Roure. Design of a Concurrent and Distributed Language. In A. Agarwal, R. H. Halstead, and Takayasu Ito, editors, Proceedings of the Workshop on Parallel Symbolic Computing: Languages, Systems and Applications, Boston, Massachusetts, October 1992.

    Google Scholar 

  26. Jonathan Rees and William Clinger, editors. Revised4 Report on the Algorithmic Language Scheme. Lisp Pointers, 4(3):1–55, July–September 1991.

    Google Scholar 

  27. Martin C. Rinard. The Design, Implementation and Evaluation of Jade: A Portable, Implicitly Parallel Programming Language. PhD thesis, Stanford University, August 1994.

    Google Scholar 

  28. Martin C. Rinard and Monica S. Lam. Semantic Foundations of Jade. In Proceedings of the Nineteenth Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pages 105–118, January 1992.

    Google Scholar 

  29. Amr Sabry and Matthias Felleisen. Reasoning about Programs in Continuation-Passing Style. Lisp and Symbolic and Computation, Special Issue on Continuations, 6(3/4):289–360, November 1993.

    Google Scholar 

  30. Amr A. Sabry. The Formal Relationship between Direct and Continuation-Passing Style Optimizing Compilers: a Synthesis of Two Paradigms. PhD thesis, Rice University, Houston, Texas, August 1994.

    Google Scholar 

  31. Pete Tinker and Morry Katz. Parallel Execution of Sequential Scheme with ParaTran. In Proceedings of the 1988 ACM Conference on Lisp and Functional Programming, pages 28–39, Snowbird, Utah, July 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Takayasu Ito Robert H. Halstead Jr. Christian Queinnec

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Moreau, L., Ribbens, D. (1996). The semantics of pcall and fork in the presence of first-class continuations and side-effects. In: Ito, T., Halstead, R.H., Queinnec, C. (eds) Parallel Symbolic Languages and Systems. PSLS 1995. Lecture Notes in Computer Science, vol 1068. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0023055

Download citation

  • DOI: https://doi.org/10.1007/BFb0023055

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61143-1

  • Online ISBN: 978-3-540-68332-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics