Advertisement

An operational semantics for a parallel functional language with continuations

  • Luc Moreau
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 605)

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.

Keywords

Scheme parallelism transparency continuation metacontinuation left expression operational semantics 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [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. [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. [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. [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. [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.CrossRefGoogle Scholar
  6. [6]
    Robert H. Halstead, Jr. Parallel symbolic computing. IEEE Computer, pages 35–43, August 1986.Google Scholar
  7. [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. [8]
    Kevin Hammond. Exception handling in a parallel functional language: PSML. Technical Report CSC/89/R17, University of Glasgow.Google Scholar
  9. [9]
    Kevin Hammond. Implementing a Parallel Functional Languages: PSML. Pitman, 1991.Google Scholar
  10. [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. [11]
    C. T. Haynes, D. P. Friedman, and M. Wand. Obtaining coroutines with continuations. Comput. Lang., 11(3/4):143–153, 1986.CrossRefGoogle Scholar
  12. [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. [13]
    Soren Holmstrom. PFL: A functional language for parallel programming and its implementation. Technical Report 7, Chalmers University, 1983.Google Scholar
  14. [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. [15]
    James S. Miller. MultiScheme: A parallel processing system based on MIT Scheme. PhD thesis, MIT, 1987.Google Scholar
  16. [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. [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. [18]
    Robin Milner. Communication and Concurrency. Prentice-Hall, 1989.Google Scholar
  19. [19]
    Robin Milner, Mads Tofte, and Robert Harper. The definition of Standard ML. MIT Press, 1990.Google Scholar
  20. [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. [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. [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. [23]
    Christian Queinnec. Crystal Scheme. A language for massively parallel machines. In Symposium on High Peformance Computers, Montpellier, 1991.Google Scholar
  24. [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. [25]
    J. H. Reppy. First-class synchronous operations in Standard ML. Technical report, Cornell University, Department of Computer Science, 1989.Google Scholar
  26. [26]
    Guy Lewis Steele, Jr. Rabbit: a compiler for scheme. MIT AI Memo 474, Massachusetts Institute of Technology, Cambridge, Mass., May 1978.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Luc Moreau
    • 1
  1. 1.Service d'Informatique, Institut d'Electricité Montefiore, B28University of Liège (Sart-Tilman)LiègeBelgium

Personalised recommendations