Advertisement

Garp: Graph abstractions for concurrent programming

  • Simon M. Kaplan
  • Gail E. Kaiser
4. Language Concepts
Part of the Lecture Notes in Computer Science book series (LNCS, volume 300)

Abstract

Several research projects are investigating parallel processing languages where dynamic process topologies can be constructed. Failure to impose abstractions on interprocess connection patterns can result in arbitrary interconnection topologies that are difficult to understand. We propose the use of a graph-grammar based formalism to control the complexities arising from trying to program such dynamic networks.

Keywords

abstraction actors concurrency distributed system graph grammar message passing object-oriented system parallel processing 

References

  1. [1]
    Reference Manual for the Ada Programming Language. Technical Report MIL-STD 1815, United States Department of Defense.Google Scholar
  2. [2]
    Gul Agha. ACTORS: A Model of Concurrent Computation in Distributed Systems. M.I.T. Press, Cambridge, Mass., 1986.Google Scholar
  3. [3]
    Gul Agha. Semantic considerations in the actor paradigm of concurrent computation. In A. W. Roscoe S. D. Brookes and G. Winskel, editors, Seminar on Concurrency, LNCS 197, pages 151–179, Springer-Verlag, New York, 1985.Google Scholar
  4. [4]
    W. C. Athas and C. L. Seitz. Cantor User Report. Technical Report 5232:TR:86, California Institute of Technology, January 1987.Google Scholar
  5. [5]
    Pierpaolo Degano and Ugo Montenari. A model for distributed systems based on graph rewriting. J. ACM, 34(2):411–449, April 1987.Google Scholar
  6. [6]
    Edsger W. Dijkstra. A Discipline of Programming. Prentice-Hall, Englewood Cliffs, NJ, 1976.Google Scholar
  7. [7]
    Hartmut Ehrig, Manfred Nagl, and Grzegorz Rozenberg (eds). Graph Grammars and their Application to Computer Science, Lecture Notes in Computer Science 153. Springer-Verlag, 1984.Google Scholar
  8. [8]
    Hartmut Erhig. Introduction to the algebraic theory of graph grammars. In Hartmut Erhig Volker Claus and Grzegorz Rozenberg, editors, Graph Grammars and their Application to Computer Science and Biology, pages 1–69, Springer-Verlag, Heidelberg, 1979.Google Scholar
  9. [9]
    C. Hewitt, T. Reinhart, G. Agha, and G Attardi. Linguistic support of receptionists for shared resources. In A. W. Roscoe S. D. Brookes and G. Winskel, editors, Seminar on Concurrency, LNCS 197, pages 151–179, Springer-Verlag, New York, 1985.Google Scholar
  10. [10]
    C. A. R. Hoare. Communicating sequential processes. Communications of the ACM, 21(8):666–677, August 1978.CrossRefGoogle Scholar
  11. [11]
    Dirk Janssens and Grzegorz Rozenberg. Graph grammars with node-label control and rewriting. In Hartmut Ehrig, Manfred Nagl, and Grzegorz Rozenberg, editors, Proceedings of the second International Workshop on Graph Grammars and their Application to Computer Science, LNCS 153, pages 186–205, Springer-Verlag, 1982.Google Scholar
  12. [12]
    G. Kahn and D. MacQueen. Coroutines and networks of parallel processes. In Information Processing 77, pages 993–998, Academic Press, 1978.Google Scholar
  13. [13]
    Gail E. Kaiser and David Garlan. Melding data flow and object-oriented programming. In Conference on Object Oriented Programming Systems, Languages, and Applications, Kissimmee, FL, October 1987.Google Scholar
  14. [14]
    Barbara Liskov and Robert Scheifler. Guardians and actions: linguistic support for robust, distributed programs. ACM TOPLAS, 5(3):381–404, July 1983.Google Scholar
  15. [15]
    Zohar Manna and Richard Waldinger. The Logical Basis for Computer Programming, Volume 1. Addison-Wesley, Reading, Mass., 1985.Google Scholar
  16. [16]
    R. Milner. A calculus of communicating systems. In Lecture Notes in Computer Science volume 92, Springer-Verlag, Berlin, 1980.Google Scholar
  17. [17]
    Manfred Nagl. A tutorial and bibliographical survey on graph grammars. In Hartmut Erhig Volker Claus and Grzegorz Rozenberg, editors, Graph Grammars and their Application to Computer Science and Biology, pages 70–126, Springer-Verlag, Heidelberg, 1979.Google Scholar
  18. [18]
    C. A. Petri. Concurrency. In Net Theory and Applications, LNCS 84, Springer-Verlag, Berlin, 1980.Google Scholar
  19. [19]
    J. Rees and W. Clinger (Editors). Revised (3) report on the algorithmic language scheme. Sigplan Notices, 21(12):37–79, December 1986.Google Scholar
  20. [20]
    Robert E. Strom and Shaula Yemini. The nil distributed systems programming language: a status report. In S. D. Brookes, A. W. Roscoe, and G. Winskel, editors, Seminar On Concurrency, LNCS 197, pages 512–523, Springer-Verlag, New York, 1985.Google Scholar
  21. [21]
    J. F. Thompson, Z.U.A. Warsi, and C. W. Mastin. Numerical Grid Generation: Foundations and Applications. North-Holland, New York, 1985.Google Scholar
  22. [22]
    William M. Waite and Gerhard Goos. Compiler Construction, Springer-Verlag, New York, 1984.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1988

Authors and Affiliations

  • Simon M. Kaplan
    • 1
  • Gail E. Kaiser
    • 2
  1. 1.Department of Computer ScienceUniversity of IllinoisUrbana
  2. 2.Department of Computer ScienceColumbia UniversityNew York

Personalised recommendations