Skip to main content

An operational semantics for a parallel functional language with continuations

  • Conference paper
  • First Online:
PARLE '92 Parallel Architectures and Languages Europe (PARLE 1992)

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

  • 138 Accesses

Abstract

We present an operational semantics for a functional language with first class continuations and transparent constructs for parallelism fork, pcall and future. The sequential semantics of continuations is preserved by verifying whether some expressions have returned a value before applying a continuation. These expressions are the ones which are evaluated before this continuation is applied in a left to right sequential order. This is implemented using a notion of higher order continuation that we call metacontinuation. This semantics is costless when continuations are not used.

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 Trevor Jim. Continuation-passing, closure-passing style. In Proceedings of the sixteenth Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pages 293–302. ACM, June 1989.

    Google Scholar 

  2. Olivier Danvy and Andrzej Filinski. Abstracting control. In Proceedings of the 1990 ACM conference on LISP and functional programming, pages 151–1160, June 1990.

    Google Scholar 

  3. Matthias Felleisen and Daniel P. Friedman. Control operators, the seed-machine and the λ-calculus. Technical Report 197, Indiana University, June 1986.

    Google Scholar 

  4. Matthias Felleisen and Daniel P. Friedman. A reduction semantics for imperative higher-order languages. In Proc. Conf. on Parallel Architecture and Languages Europe, pages 206–223. Lecture Notes 259 in Computer Science. Springer-Verlag, 1987.

    Google Scholar 

  5. Robert H. Halstead, Jr. Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems, 7(4):501–538, Oct 1985.

    Article  Google Scholar 

  6. Robert H. Halstead, Jr. Parallel symbolic computing. IEEE Computer, pages 35–43, August 1986.

    Google Scholar 

  7. 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 LNCS 441. Springer-Verlag, 1990.

    Google Scholar 

  8. Kevin Hammond. Exception handling in a parallel functional language: PSML. Technical Report CSC/89/R17, University of Glasgow.

    Google Scholar 

  9. Kevin Hammond. Implementing a Parallel Functional Languages: PSML. Pitman, 1991.

    Google Scholar 

  10. C. T. Haynes, D. P. Friedman, and M. Wand. Continuations and coroutines. In Proceedings of the 1984 ACM conference on LISP and functional programming, pages 293–298. ACM, 1984.

    Google Scholar 

  11. C. T. Haynes, D. P. Friedman, and M. Wand. Obtaining coroutines with continuations. Comput. Lang., 11(3/4):143–153, 1986.

    Article  Google Scholar 

  12. Robert Hieb and R. Kent Dybvig. Continuations and concurrency. In Second ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming, pages 128–136, March 1990.

    Google Scholar 

  13. Soren Holmstrom. PFL: A functional language for parallel programming and its implementation. Technical Report 7, Chalmers University, 1983.

    Google Scholar 

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

  15. James S. Miller. MultiScheme: A parallel processing system based on MIT Scheme. PhD thesis, MIT, 1987.

    Google Scholar 

  16. James S. Miller and B. S. Epstein. Garbage collection in MultiScheme. In T. Ito and Robert H. Halstead, editors, Parallel Lisp: Languages and Systems. US/Japan Workshop on Parallel Lisp. Japan., pages 138–160. LNCS 441. Springer-Verlag, 1990.

    Google Scholar 

  17. R. Milner, D. Berry, and D. Turner. A semantics for ML concurrency primitives. In Proceedings of the nineteenth Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, 1992.

    Google Scholar 

  18. Robin Milner. Communication and Concurrency. Prentice-Hall, 1989.

    Google Scholar 

  19. Robin Milner, Mads Tofte, and Robert Harper. The definition of Standard ML. MIT Press, 1990.

    Google Scholar 

  20. Luc Moreau. Programmer dans un langage fonctionel parallèle avec continuations. In Avancées Applicatives. Journées Francophones des Langages Applicatifs, Tréguier, France, February 1992. BIGRE.

    Google Scholar 

  21. Randy B. Osborne. Speculative computation in Multilisp. In T. Ito and Robert H. Halstead, editors, Parallel Lisp: Languages and Systems. US/Japan Workshop on Parallel Lisp. Japan., pages 103–137. LNCS 441. Springer-Verlag, 1990.

    Google Scholar 

  22. Christian Queinnec. Polyscheme, a semantics for a concurrent scheme. In High Performance and Parallel Computing in Lisp Workshop, Twickenham, Nov. 1990. Europal.

    Google Scholar 

  23. Christian Queinnec. Crystal Scheme. A language for massively parallel machines. In Symposium on High Peformance Computers, Montpellier, 1991.

    Google Scholar 

  24. Jonathan Rees and William Clinger. Revised3 report on the algorithmic language scheme. Technical report, MIT AI Lab and Indiana University Comp. Science, 1986.

    Google Scholar 

  25. J. H. Reppy. First-class synchronous operations in Standard ML. Technical report, Cornell University, Department of Computer Science, 1989.

    Google Scholar 

  26. Guy Lewis Steele, Jr. Rabbit: a compiler for scheme. MIT AI Memo 474, Massachusetts Institute of Technology, Cambridge, Mass., May 1978.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Daniel Etiemble Jean-Claude Syre

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Moreau, L. (1992). An operational semantics for a parallel functional language with continuations. In: Etiemble, D., Syre, JC. (eds) PARLE '92 Parallel Architectures and Languages Europe. PARLE 1992. Lecture Notes in Computer Science, vol 605. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-55599-4_102

Download citation

  • DOI: https://doi.org/10.1007/3-540-55599-4_102

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-55599-5

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics