Skip to main content

A software environment for concurrent coordinated programming

  • Regular Papers
  • Conference paper
  • First Online:
Book cover Coordination Languages and Models (COORDINATION 1996)

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

Included in the following conference series:

Abstract

In this paper, we present ConCoord: a software environment for Concurrent Coordinated programming. ConCoord contributes to concurrent programming in three ways. First, it separates programming into computation and coordination in order to reduce programming complexity. A ConCoord program is a dynamic collection of processes for either computation or coordination. Computation processes encapsulate conventional sequential computations. Coordination processes manage concurrency and only this. They handle dynamic evolution of the program structure depending on conditions on the program structure and execution state of processes. Second, ConCoord is targeted at networks of sequential and parallel machines. These networks support efficiently the exploitation of a diversity of concurrency grains on their different architectures. In order to take advantage of this feature, ConCoord provides linguistic support for heterogeneous concurrency exploitation. Third, reuse has being a primary concern in ConCoord's design. In our environment, sequential algorithms can be reused within computation processes. Concurrency management of concurrent algorithms can be reused within coordination processes. Both computation and coordination processes can be specified as parameterised reusable software components.

This work has been supported by the grant pf93 5416228 from the Spanish Ministry of Education and Sciences MEC.

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. J.M. Andreoli, P. Ciancarini, and R. Pareschi. Interaction abstract machines. Research Directions in Concurrent Object Oriented Computing, 6:81–90, 1992.

    Google Scholar 

  2. F. Arbab, I. Herman, and P. Spilling. An overview of Manifold and its implementation. Concurrency: Practice and Experience, 5(1):23–70, February 1993.

    Google Scholar 

  3. J-P. Banâtre, A. Coutant, and D. Le Metayer. A parallel machine for multiset transformation and its programming style. Future Generation Computer Systems, 4:133–145, 1988.

    Google Scholar 

  4. M.R. Barbacci, D.L. Doubleday, C.B. Weinstock, M.J. Gardner, and R.W. Lichota. Building Fault Tolerant Distributed Applications With Durra. In Proc. of International Workshop on Configurable Distributed Systems, pages 128–139. IEE London, 1992.

    Google Scholar 

  5. J.P. Browne, J. Werth, and T. Lee. Intersection of parallel structuring and reuse of software components: A calculus of composition of components for parallel programs. In Proc. International Conference on Parallel Processing, pages 126–130. Penn. State Press 1989, 1989.

    Google Scholar 

  6. N. Carriero and D. Gelernter. Linda in context. Communications of ACM, 32(4):444–458, April 1989.

    Google Scholar 

  7. N. Carriero and D. Gelernter. How to write parallel programs: A first course. MIT Press, 1990.

    Google Scholar 

  8. S. Cox, S-Y Huang, P. Kelly, J. Liu, and F. Taylor. Program transformations for static process networks. SIGPLAN Notices, January 1993.

    Google Scholar 

  9. K.M. Chandy and S. Taylor. An Introduction to Parallel Programming. Jones and Bartlett Publishers, 1992.

    Google Scholar 

  10. E.W. Dijkstra. Guarded Commands, Nondeterminancy and Formal Derivation of Programs. Communications of ACM, 18(8):453–457, 1975.

    Google Scholar 

  11. M. Danelutto, R. Di Meglio, S. Orlando, S. Pelagatti, and M. Vanneschi. A methodology for the development and the support of massively parallel programs. Future Generation Computer Systems (North Holland), 8:205–220, 1992.

    Google Scholar 

  12. G. Etzkorn. Change programming in distributed systems. In Proc. of International Workshop on Configurable Distributed Systems, pages 140–151. IEE London, 1992.

    Google Scholar 

  13. M. Endler and J. Wei. Programming generic dynamic reconfigurations for distributed applications. In Proc. of International Workshop on Configurable Distributed Systems, pages 68–79. IEE London, 1992.

    Google Scholar 

  14. I. Foster and M. Chandy. Modular Fortran: Introduction and language definition. Draft paper, June 1992.

    Google Scholar 

  15. I. Foster and S. Taylor. Strand. New Concepts in Parallel Programming. Prentice-Hall, 1990.

    Google Scholar 

  16. A. Geist, A. Beguelin, J. Dongarra, W. Jiang, R. Manchek, and V. Sunderam. PVM 3 user's guide and reference manual. Technical report, Oak Ridge National Laboratory, 1994.

    Google Scholar 

  17. Ltd. INMOS. occam Programming Manual. Prentice-Hall International Series in Computer Science, 1984.

    Google Scholar 

  18. J. Kramer. Configuration Programming: Exploiting Component Reuse in Distributed Systems. In P. Hall, editor, Software Reuse and Reverse Engineering in Practice. Chapman and Hall, 1991.

    Google Scholar 

  19. R.J. LeBlanc and A.B. Maccabe. The design of a programming language based on connectivity networks. In Proc. of 3rd International Conference on Distributed Computing Systems, pages 532–541. IEEE, 1982.

    Google Scholar 

  20. S. Lucco and O. Sharp. Delirium: An embedding coordination language. In Proceedings of Supercomputing'90, pages 515–524. IEEE, 1990.

    Google Scholar 

  21. K. Marzullo, R. Cooper, M. Wood, and K. Birman. Tools for Distributed Application Management. Technical report, Cornell University, 1990.

    Google Scholar 

  22. J. Magee, N. Dulay, and J. Kramer. Structuring Parallel and Distributed programs. In Proc. of International Workshop on Configurable Distributed Systems, pages 102–117. IEE London, 1992.

    Google Scholar 

  23. J. Magee, N. Dulay, and J. Kramer. Regis: A constructive development environment for distributed programs. Distributed Systems Engineering Journal, 1(5):304–312, September 1994.

    Google Scholar 

  24. United States Department of Defense. Reference manual for the Ada programming language. Technical report, 1983.

    Google Scholar 

  25. B. Stroustrup. The C++ Programming Language. Addison-Wesley, 1991.

    Google Scholar 

  26. L.H. Turcotte. A Survey of Software Environments for Exploiting Networked Computing Resources. Technical report, Mississippi State University, 1993.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Paolo Ciancarini Chris Hankin

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Holzbacher, A.A. (1996). A software environment for concurrent coordinated programming. In: Ciancarini, P., Hankin, C. (eds) Coordination Languages and Models. COORDINATION 1996. Lecture Notes in Computer Science, vol 1061. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61052-9_50

Download citation

  • DOI: https://doi.org/10.1007/3-540-61052-9_50

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61052-6

  • Online ISBN: 978-3-540-49936-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics