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
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
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.
Olivier Danvy and Andrzej Filinski. Abstracting control. In Proceedings of the 1990 ACM conference on LISP and functional programming, pages 151–1160, June 1990.
Matthias Felleisen and Daniel P. Friedman. Control operators, the seed-machine and the λ-calculus. Technical Report 197, Indiana University, June 1986.
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.
Robert H. Halstead, Jr. Multilisp: A language for concurrent symbolic computation. ACM Transactions on Programming Languages and Systems, 7(4):501–538, Oct 1985.
Robert H. Halstead, Jr. Parallel symbolic computing. IEEE Computer, pages 35–43, August 1986.
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.
Kevin Hammond. Exception handling in a parallel functional language: PSML. Technical Report CSC/89/R17, University of Glasgow.
Kevin Hammond. Implementing a Parallel Functional Languages: PSML. Pitman, 1991.
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.
C. T. Haynes, D. P. Friedman, and M. Wand. Obtaining coroutines with continuations. Comput. Lang., 11(3/4):143–153, 1986.
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.
Soren Holmstrom. PFL: A functional language for parallel programming and its implementation. Technical Report 7, Chalmers University, 1983.
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.
James S. Miller. MultiScheme: A parallel processing system based on MIT Scheme. PhD thesis, MIT, 1987.
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.
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.
Robin Milner. Communication and Concurrency. Prentice-Hall, 1989.
Robin Milner, Mads Tofte, and Robert Harper. The definition of Standard ML. MIT Press, 1990.
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.
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.
Christian Queinnec. Polyscheme, a semantics for a concurrent scheme. In High Performance and Parallel Computing in Lisp Workshop, Twickenham, Nov. 1990. Europal.
Christian Queinnec. Crystal Scheme. A language for massively parallel machines. In Symposium on High Peformance Computers, Montpellier, 1991.
Jonathan Rees and William Clinger. Revised3 report on the algorithmic language scheme. Technical report, MIT AI Lab and Indiana University Comp. Science, 1986.
J. H. Reppy. First-class synchronous operations in Standard ML. Technical report, Cornell University, Department of Computer Science, 1989.
Guy Lewis Steele, Jr. Rabbit: a compiler for scheme. MIT AI Memo 474, Massachusetts Institute of Technology, Cambridge, Mass., May 1978.
Author information
Authors and Affiliations
Editor information
Rights 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