Skip to main content

A concurrent and distributed extension of scheme

  • 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))

Abstract

The Lisp family of languages has traditionally been a privileged domain where linguistic experiments were done, this paper presents a new dialect offering concurrency and distribution. This dialect, nicknamed CD-Scheme, has been designed above Scheme with as few as possible features to allow a great expressiveness but still to retain the original consistency and simplicity of Scheme. We explicitly show how common parallel constructs can be written in regular CD-Scheme.

A denotational semantics is also presented that expresses the detailed meaning of assignment, data mutation, continuations in presence of concurrency and distribution. This semantics offers a basis to understand new proposals of concurrent or distributed features and may be used to justify compiler optimizations or implementation techniques. The proposed set of features of CD-Scheme can be also used to extend languages other than Scheme.

This work has been partially funded by Greco de Programmation.

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.

Bibliography

  1. Pierre America and Jan Rutten. A parallel object-oriented language: design and semantic foundations. In J W Bakker, editor, Languages for Parallel Architectures: Design, Semantics, Implementation Models. Wiley, 1989.

    Google Scholar 

  2. Paul S Barth, Rishiyur S Nikhil, and Arvind. M-structures: Extending a parallel, non-strict, functional language with state. In John Hughes, editor, FPCA '91-Functional Programming and Computer Architecture, volume Lecture Notes in Computer Science 523, pages 538–568, Cambridge (Mass. USA), August 1991. Springer-Verlag.

    Google Scholar 

  3. William Clinger and Jonathan A. Rees. Revised4 report on the algorithmic language Scheme. 1991.

    Google Scholar 

  4. Ron Goldman and Richard P. Gabriel. Preliminary results with the initial implementation of qlisp. In LFP '88-ACM Symposium on Lisp and Functional Programming, pages 143–152, Snowbird (Utah USA), 1988.

    Google Scholar 

  5. J F Giorgi and Daniel Le Métayer. Continuation-based parallel implementation of functional programming languages. In LFP '90-ACM Symposium on Lisp and Functional Programming, pages 209–217, Nice (France), June 1990.

    Google Scholar 

  6. Richard P Gabriel and John McCarthy. Queue-based multi-processing lisp. In LFP '84-ACM Symposium on Lisp and Functional Programming, pages 9–17, Austin (Texas USA), 1984.

    Google Scholar 

  7. Robert H. Halstead, Jr. Implementation of multilisp: Lisp on a multiprocessor. In LFP '84-ACM Symposium on Lisp and Functional Programming, pages 9–17, Austin (Texas USA), 1984.

    Google Scholar 

  8. Robert H. Halstead, Jr. New ideas in parallel lisp: Language design, implementation, and programming tools. In Robert H Halstead, Jr. and Takayasu Ito, editors, US-Japan Workshop on Parallel Lisp, volume Lecture Notes in Computer Science 441, Sendai (Japan), June 1989. Springer-Verlag.

    Google Scholar 

  9. Robert Hieb and R. Kent Dybvig. Continuations and concurrency. In PPOPP '90-ACM SIGPLAN Symposium on Principles and Practices of Parallel Programming, pages 128–136, Seattle (Washington US), March 1990.

    Google Scholar 

  10. Robert Hieb, R. Kent Dybvig, and Carl Bruggeman. Representing control in the presence of first-class continuations. In Proceedings of the SIGPLAN '90 Conference on Programming Language Design and Implementation, White Plains, New York, June 1990.

    Google Scholar 

  11. Christopher T. Haynes, Daniel P. Friedman, and Mitchell Wand. Continuations and coroutines. In Conference Record of the 1984 ACM Symposium on Lisp and Functional Programming, pages 293–298, Austin, TX., 1984.

    Google Scholar 

  12. Takayasu Ito and Manabu Matsui. A parallel lisp language PaiLisp and its kernel specification. In Takayasu Ito and Robert H Halstead, Jr., editors, Proceedings of the US/Japan Workshop on Parallel Lisp, volume Lecture Notes in Computer Science 441, pages 58–100, Sendai (Japan), June 1989. Springer-Verlag.

    Google Scholar 

  13. Eugene E. Kohlbecker, Daniel P. Friedman, Matthias Felleisen, and Bruce Duba. Hygienic macro expansion. Symposium on LISP and Functional Programming, pages 151–161, August 1986.

    Google Scholar 

  14. David Kranz, Richard Kelsey, Jonathan A Rees, Paul Hudak, James Philbin, and Norman I Adams. Orbit: an optimizing compiler for Scheme. In Proceedings of the SIGPLAN '86 Symposium on Compiler Construction, pages 219–233. ACM, June 1986.

    Google Scholar 

  15. Robert R. Kessler and Mark R. Swanson. Concurrent scheme. In US-Japan Workshop on Parallel Lisp, volume Lecture Notes in Computer Science 441, Sendai (Japan), June 1989. Springer-Verlag.

    Google Scholar 

  16. Morry Katz and Daniel Weise. Continuing into the future: On the interaction of futures and first-class continuations. In LFP '90-ACM Symposium on Lisp and Functional Programming, pages 176–184, Nice (France), 1990.

    Google Scholar 

  17. Bernard Lang, Christian Queinnec, and José Piquer. Garbage collecting the world. In POPL '92-Nineteenth Annual ACM symposium on Principles of Programming Languages, Albuquerque (New Mexico, USA), January 1992.

    Google Scholar 

  18. Thanasis Mitsolides and Malcolm Harrison. Generators and the replicator control structure in the parallel environment of alloy. In PLDI '90-ACM SIGPLAN Programming Languages Design and Implementation, pages 189–196, White Plains (New-York USA), 1990.

    Google Scholar 

  19. Eric Mohr, David A. Kranz, and Robert H. Halstead, Jr. Lazy task creation: A technique for increasing the granularity of parallel programs. In LFP '90-ACM Symposium on Lisp and Functional Programming, pages 185–198, Nice (France), 1990.

    Google Scholar 

  20. Luc Moreau. Programmer dans un langage fonctionnel parallèle avec continuations. In Christian Queinnec (Ed), editor, Actes des JFLA 92 — Journées Francophones des Langages Applicatifs, pages 130–153, Perros-Guirec (France), February 1992. Revue Bigre+Globule 76/77.

    Google Scholar 

  21. Randy B. Osborne. Speculative computation in MultiLisp, an overview. In LFP '90-ACM Symposium on Lisp and Functional Programming, pages 198–208, Nice (France), 1990.

    Google Scholar 

  22. R. H. Perrott. Parallel Programming. Addison Wesley, 1987.

    Google Scholar 

  23. José Piquer. Indirect reference counting: A distributed gc. In PARLE '91-Parallel Architectures and Languages Europe, Lecture Notes in Computer Science 505, pages 150–165, Eindhoven (Holland), June 1991. Springer-Verlag.

    Google Scholar 

  24. Gianfranco Prini. Explicit parallelism in Lisp-like languages. In Conference Record of the 1980 Lisp Conference, pages 13–18, Stanford (California USA), August 1980. The Lisp Conference, P.O. Box 487, Redwood Estates CA 95044.

    Google Scholar 

  25. Christian Queinnec and Bernard Serpette. A Dynamic Extent Control Operator for Partial Continuations. In POPL '91-Eighteenth Annual ACM symposium on Principles of Programming Languages, pages 174–184, Orlando (Florida USA), January 1991.

    Google Scholar 

  26. Christian Queinnec. Crystal Scheme, A Language for Massivel Parallel Machines. In M. Durand and F. El Dabaghi, editors, Second Symposium on High Performance Computing, pages 91–102, Montpellier (France), October 1991. North Holland.

    Google Scholar 

  27. James W. Stamos and David K. Gifford. Implementing remote evaluation. IEEE Trans. on Software Engineering, 16(7):710–722, July 1990.

    Article  Google Scholar 

  28. Mitchell Wand. Continuation-based multiprocessing. In Conference Record of the 1980 Lisp Conference, pages 19–28. The Lisp Conference, 1980.

    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

Queinnec, C. (1992). A concurrent and distributed extension of scheme. 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_103

Download citation

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

  • 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