Skip to main content

Design of a concurrent and distributed language

  • Conference paper
  • First Online:
Parallel Symbolic Computing: Languages, Systems, and Applications (PSC 1992)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 748))

Included in the following conference series:

Abstract

This paper presents a new dialect of Scheme aimed towards concurrency and distribution. It offers a few primitives, including first-class continuations, with very simple semantics. Numerous examples are given showing how to program the classical concurrent control operators such as future, pcall and either. The implementation is sketched and presented along the lines of a metacircular interpreter.

This work has been partially funded by GDR-PRC de Programmation du CNRS.

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.

References

  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. Henry G Baker. Equal rights for functional objects or, the more things change, the more they are the same. Technical report, Nimble Computer Corporation, 16231 Meadow Ridge Way, Encino, CA 91436, USA, October 1990.

    Google Scholar 

  3. H E Bal, M F Kaashoek, and A S Tanenbaum. Orca: A language for parallel programming of distributed systems. IEEE Transactions on Software Engineering, 18(3):190–205, March 1992.

    Article  Google Scholar 

  4. 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 

  5. Alan Burns. Programming in Occam 2. the Instruction Set Series. Addison Wesley, 1988.

    Google Scholar 

  6. William D. Clinger, Anne H. Hartheimer, and Eric M. Ost. Implementation strategies for continuations. In Conference Record of the 1988 ACM Conference on Lisp and Functional Programming, page 124 131, August 1988.

    Google Scholar 

  7. Henry Clark and Bruce McMillin. Dawgs-a distributed compute server utilizing idle workstations. Journal of Parallel and Distributed Computing, 14(2):175–186, February 1992.

    Article  Google Scholar 

  8. William Clinger and Jonathan A Rees. The revised 4 report on the algorithmic language scheme. Lisp Pointer, 4(3), 1991.

    Google Scholar 

  9. David C. DeRoure. Experiences with Lisp and distributed systems. In High Performance and Parallel Computing in Lisp, November 1990. Also appears as Technical Report CSTR90-21, Department of Electronics and Computer Science, University of Southampton.

    Google Scholar 

  10. David C. DeRoure. A Lisp Environment for Modelling Distributed Systems. PhD thesis, Dept. of Electronics and Computer Science, University of Southampton, January 1990.

    Google Scholar 

  11. David C. DeRoure. QPL3-Continuations, concurrency and communication. Technical Report CSTR 90-20, Department of Electronics and Computer Science, University of Southampton, 1990.

    Google Scholar 

  12. Alain Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications. In POPL '90-Seventeenth Annual ACM symposium on Principles of Programming Languages, pages 157–168, San Francisco, January 1990.

    Google Scholar 

  13. Partha Dasgupta, Richard J LeBlanc Jr., Mustaque Ahamad, and Umakishore Ramachandran. The clouds distributed operating system. Computer, 24(11):34–44, November 1991.

    Article  Google Scholar 

  14. R. Kent Dybvig. The Scheme Programming Language. Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 1987.

    Google Scholar 

  15. Matthias Felleisen, Mitchell Wand, Daniel P. Friedman, and Bruce Duba. Abstract continuations: a mathematical semantics for handling functional jumps. In Proceedings of the 1988 ACM Symposium on LISP and Functional Programming, Salt Lake City, Utah., July 1988.

    Google Scholar 

  16. 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 

  17. Ron Goldman, Richard P. Gabriel, and Carol Sexton. Qlisp: An interim report. In Takayasu Ito and Robert H Halstead Jr., editors, Parallel Lisp: Languages and Systems, US/Japan Workshop, volume Lecture Notes in Computer Science 441, Sendai (Japan), June 1989. Springer-Verlag.

    Google Scholar 

  18. 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 

  19. 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 

  20. 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 

  21. 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 

  22. 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 

  23. 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, pages 66–77, White Plains, New York, June 1990.

    Google Scholar 

  24. 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 

  25. 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 

  26. Pierre Jouvelot and David K Gifford. Reasoning about continuations with control effects. In ACM SIGPLAN Programming Languages Design and Implementation, volume 24 of SIGPLAN Notices, pages 218–225, Portland (OR), June 1989. SIG-PLAN, ACM Press.

    Google Scholar 

  27. 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 

  28. 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 

  29. 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 

  30. 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 

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

    Google Scholar 

  32. John McCarthy. A basis for a mathematical theory of computation. In Braffort and Hirshberg, editors, Computer Programming and Formal Systems. North Holland, 1963.

    Google Scholar 

  33. 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 

  34. 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 

  35. Luc Moreau. An operational semantics for a parallel functional language with continuations. In D. Etiemble and J-C. Syre, editors, PARLE '92 — Parallel Architectures and Languages Europe, pages 415–430, Paris (France), June 1992. Lecture Notes in Computer Science 605, Springer-Verlag.

    Google Scholar 

  36. 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 

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

    Google Scholar 

  38. José Piquer. Sharing data structures in a distributed lisp. In High Performance and Parallel Computing in Lisp, Twickenham, London (UK), November 1990. a EUROPAL workshop.

    Google Scholar 

  39. José Piquer. Preserving distributed data coherence using asynchronous broadcasts. In Eleventh International Conference of the Chilean Computer Science Society, pages 283–290, Santiago (Chile), October 1991. Plenum Publishing Corporation, New York NY (USA).

    Google Scholar 

  40. 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 

  41. Christian Queinnec and Julian Padget. Modules, Macros and Lisp. In Eleventh International Conference of the Chilean Computer Science Society, pages 111–123, Santiago (Chile), October 1991. Plenum Publishing Corporation, New York NY (USA).

    Google Scholar 

  42. 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 

  43. Christian Queinnec. PolyScheme: A Semantics for a Concurrent Scheme. In Workshop on High Performance and Parallel Computing in Lisp, Twickenham (UK), November 1990. European Conference on Lisp and its Practical Applications.

    Google Scholar 

  44. Christian Queinnec. Crystal Scheme, A Language for Massively 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 

  45. Christian Queinnec. A concurrent and distributed extension to scheme. In D. Etiemble and J-C. Syre, editors, PARLE '92 — Parallel Architectures and Languages Europe, pages 431–446, Paris (France), June 1992. Lecture Notes in Computer Science 605, Springer-Verlag.

    Google Scholar 

  46. Christian Queinnec. Value transforming style. Research Report LIX RR 92/07, Laboratoire d'Informatique de l'école Polytechnique, 91128 Palaiseau Cedex, France, May 1992.

    Google Scholar 

  47. Rajendra K. Raj, Ewan D. Tempero, Henry M. Levy, Andrew P. Black, Norman C. Hutchinson, and Eric Jul. Emerald: A general-purpose programming language. Software — Practice and Experience, 21(1):91–118, January 1991.

    Google Scholar 

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

    Article  Google Scholar 

  49. Rfc 1014: external data representation standard: Protocol specification. Technical report, ARPA Network Information Center.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Robert H. Halstead Jr. Takayasu Ito

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Queinnec, C., De Roure, D. (1993). Design of a concurrent and distributed language. In: Halstead, R.H., Ito, T. (eds) Parallel Symbolic Computing: Languages, Systems, and Applications. PSC 1992. Lecture Notes in Computer Science, vol 748. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0018655

Download citation

  • DOI: https://doi.org/10.1007/BFb0018655

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57396-8

  • Online ISBN: 978-3-540-48133-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics