Abstract
A method of preserving the sequential semantics in parallel programs with first-class continuations is to invoke continuations non-speculatively. This method, which prevents a continuation from being invoked as long as its invocation can infringe the sequential semantics, reduces parallelism by the severe conditions that it imposes, especially on upward uses. In this paper, we present new conditions for invoking continuations in an upward way and both preserving the sequential semantics and providing parallelism. This new approach is formalised in the PCKS-machine, which is proved to be correct by showing that it has the same observational equivalence theory as the sequential semantics.
This work was supported in part by the Belgian Incentive Program “Information Technology” — Computer Science of the future, initiated by the Belgian State — Prime Minister's Office — Science Policy Office. The scientific responsibility is assumed by its author.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Andrew W. Appel and David B. MacQueen. Standard ML of New Jersey. In Jan Maluszyński 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.
Henk P. Barendregt. The Lambda Calculus: Its Syntax and Semantics, volume 103 of Studies in Logic and the Foundations of Mathematics. North-Holland, 1984.
Marc Feeley. An Efficient and General Implementation of Futures on Large Scale Shared-Memory Multiprocessors. PhD thesis, Brandeis University, 1993.
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.
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.
Cormac Flanagan, Amr Sabry, Bruce F. Duba, and Matthias Felleisen. The Essence of Compiling with Continuations. In Proc. SIGPLAN '93 Conference on Programming Language Design and Implementation, SIGPLAN Notices, Vol. 28, pages 237–247, 1993.
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.
Christopher T. Haynes, Daniel P. Friedman, and Mitchell Wand. Obtaining Coroutines with Continuations. Comput. Lang., 11(3/4):143–153, 1986.
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.
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.
Luc Moreau. Sound Evaluation of Parallel Functional Programs with First-Class Continuations. PhD thesis, University of Liège, June 1994. Also available by anonymous ftp from ftp.montefiore.ulg.ac.be in directory pub/moreau.
Luc Moreau and Daniel Ribbens. Sound Rules for Parallel Evaluation of a Functional Language with callce. In ACM conference on Functional Programming and Computer Architecture (FPCA'93), pages 125–135, Copenhagen, June 1993.
Gordon D. Plotkin. Call-by-Name, Call-by-Value and the λ-Calculus. Theoretical Computer Science, pages 125–159, 1975.
Jonathan Rees and William Clinger, editors. Revised4 Report on the Algorithmic Language Scheme. Lisp Pointers, 4(3):1–55, July-September 1991.
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.
Christopher Strachey and Christopher P. Wadsworth. A Mathematical Semantics for Handling Full Jumps. Technical Monography PRG-11, Oxford University Computing Laboratory, Programming Research Group, Oxford, England, 1974.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Moreau, L. (1995). Non-speculative and upward invocation of continuations in a parallel language. In: Mosses, P.D., Nielsen, M., Schwartzbach, M.I. (eds) TAPSOFT '95: Theory and Practice of Software Development. CAAP 1995. Lecture Notes in Computer Science, vol 915. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-59293-8_231
Download citation
DOI: https://doi.org/10.1007/3-540-59293-8_231
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-59293-8
Online ISBN: 978-3-540-49233-7
eBook Packages: Springer Book Archive