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.
Preview
Unable to display preview. Download preview PDF.
Bibliography
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.
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.
William Clinger and Jonathan A. Rees. Revised4 report on the algorithmic language Scheme. 1991.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
R. H. Perrott. Parallel Programming. Addison Wesley, 1987.
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.
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.
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.
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.
James W. Stamos and David K. Gifford. Implementing remote evaluation. IEEE Trans. on Software Engineering, 16(7):710–722, July 1990.
Mitchell Wand. Continuation-based multiprocessing. In Conference Record of the 1980 Lisp Conference, pages 19–28. The Lisp Conference, 1980.
Author information
Authors and Affiliations
Editor information
Rights 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