Specifying concurrent systems with Δ-grammars

Specification of parallel and distributed systems is difficult because it involves describing a two dimensional relationship between the flow of control of many processes and the synchronized flow of data between those processes. Many researchers have turned to graphical representations for such specifications; perhaps one of the most well-known techniques involves Petri nets. However, parallel and distributed systems are often dynamic. The components’ distribution and degree of parallelism vary with time. This is often difficult to express in existing graphical notations. The Actor approach has tried to capture such changing behavior (in a textual form) but can lead to system specifications that lack structure and are therefore prone to error. ln this paper, we introduce a new graph grammar based notation for specifying concurrent and distributed systems. The notation has a formal algebraic basis which both defines the meanings of graphs and forms the foundation for verifying transformations from specifications to code. Specifications show no implementation bias and are therefore independent of many low-level issues which clutter up conventional notations. The use of graphics greatly simplifies the tasks of writing and understanding specifications of concurrent systems. *Supported in part by the National Science Foundation under grants CCR-8809479 and CISE l-5-30035 and by the AT&T Illinois Software Engineering Project. Contact Auth~or: Simon M. Kaplan, 1304 W. Springfield Avenue, Urbana Illinois 61801. phone: 217 244 0392 email: kaplan@a.cs.uiuc.edu Permission to copy without fee all or part of this material is granted provided that copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing IMachinery. To copy otherwise, or to republish, requires a fee and/or specific permission. The use of our approach is illustrated with two examples: The dynamic dining philosophers problem and the problem of establishing connections between clients in a multipleserver network with arbitrary topology in which the clients could be associated with any server.

[1]  Hartmut Ehrig,et al.  Introduction to the Algebraic Theory of Graph Grammars (A Survey) , 1978, Graph-Grammars and Their Application to Computer Science and Biology.

[2]  Manfred Nagl,et al.  Graph-Grammars and Their Application to Computer Science , 1982, Lecture Notes in Computer Science.

[3]  Grzegorz Rozenberg,et al.  Graph grammars with node-label controlled rewriting and embedding , 1982, Graph-Grammars and Their Application to Computer Science.

[4]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[5]  Gail E. Kaiser,et al.  Garp: Graph Abstractions for Concurrent Programming , 1988, ESOP.

[6]  Herbert Göttler,et al.  Attributed graph grammars for graphics , 1982, Graph-Grammars and Their Application to Computer Science.

[7]  S. M. Kaplan,et al.  Garp: a graphical/textual language for concurrent programming , 1988, OOPSLA/ECOOP '88.

[8]  Hartmut Ehrig,et al.  Graph rewriting with unification and composition , 1986, Graph-Grammars and Their Application to Computer Science.

[9]  Simon M. Kaplan,et al.  Designing and prototyping in GRADS , 1988 .

[10]  Manfred Nagl Set theoretic approaches to graph grammars , 1986, Graph-Grammars and Their Application to Computer Science.

[11]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.