Abstract
We describe a hybrid graphical/textual model for concurrent object-based programming. In this model, graph grammars are used to specify the set of topologies (processes and their interconnections) that a concurrent system can evolve, while the behavior of individual processes is specified textually. This allows a clean separation of naming and topology control issues from those of describing individual components of the system. In our model a concurrent system is a collection of processes, connected into a topology constrained by the language of the graph grammar for the system, which communicate by message passing and mutate the topology of the system by requesting application of the productions in the grammar to the topology.
We overview graph grammars and explain how they are used to construct object-based concurrent systems with good software engineering characteristics. We then present a concrete language based on the model, and illustrate its use with a client-server example.
Supported in part by the National Science Foundation under grant CCR-8809479 and by the AT&T Illinois Software Engineering Project.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Reference Manual for the Ada Programming Language. Technical Report MIL-STD 1815, United States Department of Defense.
Gul Agha. ACTORS: A Model of Concurrent Computation in Distributed Systems. M.I.T. Press, Cambridge, Mass., 1986.
W. C. Athas and C. L. Seitz. Cantor User Report. Technical Report 5232:TR:86, California Institute of Technology, January 1987.
Hartmut Ehrig, Manfred Nagl, and Grzegorz Rozenberg (eds). Proceedings of the second International Workshop on Graph Grammars and their Application to Computer Science, Lecture Notes in Computer Science 153. Springer-Verlag, Heidelberg, 1982.
C. A. R. Hoare. Communicating sequential processes. Communications of the ACM, 21(8):666–677, August 1978.
G. Kahn and D. MacQueen. Coroutines and networks of parallel processes. In Information Processing 77, pages 993–998, Academic Press, 1978.
Simon M. Kaplan and Roy H. Campbell. Designing and prototyping in grads. In Proceedings IEE/BCS Symposium on Software Engineering, July 1988.
Simon M. Kaplan, Steven K. Goering, and Roy H. Campbell. Specifying concurrent systems with Δ-grammars. In Proceedings International Workshop on Software Specification and Design, Pittsburg, April 1989.
Simon M. Kaplan and Gail E. Kaiser. Garp: graph abstractions for concurrent programming. In ESOP '88, Springer-Verlag, March 1988.
Barbara Liskov and Robert Scheifler. Guardians and actions: linguistic support for robust, distributed programs. ACM TOPLAS, 5(3):381–404, July 1983.
R. Milner. A calculus of communicating systems. In Lecture Notes in Computer Science, LNCS 92, Springer-Verlag, Berlin, 1980.
M. Nagl, G. Engels, R. Gall, and W. Schafer. Software specification by graph grammars. In Hartmut Ehrig, Manfred Nagl, and Grzegorz Rozenberg, editors, Graph Grammars and their Application to Computer Science, LNCS 153, pages 267–287, Springer-Verlag, 1982.
Manfred Nagl. Set theoretic approaches to graph grammars. In Hartmut Ehrig, Manfred Nagl, and Grzegorz Rozenberg, editors, Graph Grammars and their Application to Computer Science, LNCS 291, pages 41–54, Springer-Verlag, 1987.
C. A. Petri. Concurrency. In Net Theory and Applications, LNCS 84, Springer-Verlag, Berlin, 1980.
J. Rees and W. Clinger (Editors). Revised (3) report on the algorithmic language scheme. Sigplan Notices, 21(12):37–79, December 1986.
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.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1989 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Goering, S.K., Kaplan, S.M. (1989). Visual concurrent object-based programming in GARP. In: Odijk, E., Rem, M., Syre, JC. (eds) PARLE '89 Parallel Architectures and Languages Europe. PARLE 1989. Lecture Notes in Computer Science, vol 366. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-51285-3_40
Download citation
DOI: https://doi.org/10.1007/3-540-51285-3_40
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-51285-1
Online ISBN: 978-3-540-46184-5
eBook Packages: Springer Book Archive