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.
Preview
Unable to display preview. Download preview PDF.
References
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.
Henry Baker and Carl Hewitt. The Incremental Garbage Collection of Processes. Technical Report AI Memo 454, M.I.T., Cambridge, Massachussets, March 1977.
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.
Marc Feeley. An Efficient and General Implementation of Futures on Large Scale Shared-Memory Multiprocessors. PhD thesis, Brandeis University, 1993.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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, 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.
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.
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.
Gordon D. Plotkin. Call-by-Name, Call-by-Value and the λ-Calculus. Theoretical Computer Science, pages 125–159, 1975.
Christian Queinnec. Locality, Causality and Continuations. In Proceedings of the 1994 ACM Conference on Lisp and Functional Programming, Orlando, Florida, June 1994.
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.
Jonathan Rees and William Clinger, editors. Revised4 Report on the Algorithmic Language Scheme. Lisp Pointers, 4(3):1–55, July–September 1991.
Martin C. Rinard. The Design, Implementation and Evaluation of Jade: A Portable, Implicitly Parallel Programming Language. PhD thesis, Stanford University, August 1994.
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.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Rights 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