Advertisement

A concurrent and distributed extension of scheme

  • Christian Queinnec
Conference paper
Part of the Lecture Notes in Computer Science book series (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.

Keywords

Migration Europe Cond 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Bibliography

  1. [AR89]
    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. [BNA91]
    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. [CR91]
    William Clinger and Jonathan A. Rees. Revised4 report on the algorithmic language Scheme. 1991.Google Scholar
  4. [GG88]
    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. [GL90]
    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. [GM84]
    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. [Hal84]
    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. [Hal89]
    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. [HD90]
    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. [HDB90]
    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. [HFW84]
    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. [IM89]
    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. [KFFD86]
    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. [KKR86]
    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. [KS89]
    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. [KW90]
    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. [LQP92]
    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. [MH90]
    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. [MKH90]
    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. [Mor92]
    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. [Osb90]
    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. [Per87]
    R. H. Perrott. Parallel Programming. Addison Wesley, 1987.Google Scholar
  23. [Piq91]
    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. [Pri80]
    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. [QS91]
    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. [Que91]
    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. [SG90]
    James W. Stamos and David K. Gifford. Implementing remote evaluation. IEEE Trans. on Software Engineering, 16(7):710–722, July 1990.CrossRefGoogle Scholar
  28. [Wan80]
    Mitchell Wand. Continuation-based multiprocessing. In Conference Record of the 1980 Lisp Conference, pages 19–28. The Lisp Conference, 1980.Google Scholar

Copyright information

© Springer-Verlag 1992

Authors and Affiliations

  • Christian Queinnec
    • 1
  1. 1.Laboratoire d'Informatique de l'École Polytechnique (URA 1432)Palaiseau CedexFrance

Personalised recommendations