Structured Gamma

The Gamma language is based on the chemical reaction metaphor which has a number of benefits with respect to parallelism and program derivation. But the original definition of Gamma does not provide any facility for data structuring or for specifying particular control strategies. We address this issue by introducing a notion of structured multiset which is a set of addresses satisfying specific relations. The relations can be seen as a form of neighborhood between the molecules of the solution; they can be used in the reaction condition of a program or transformed by the action. A type is defined by a context-free graph grammar and a structured multiset belongs to a type T if its underlying set of addresses satisfies the invariant expressed by the grammar defining T . We define a type checking algorithm that allows us to prove mechanically that a program maintains its data structure invariant. We illustrate the significance of the approach for program refinement and we describe its application to coordination.

[1]  Nils Klarlund,et al.  Graph types , 1993, POPL '93.

[2]  L. Opie Editor's introduction , 2004, Cardiovascular Drugs and Therapy.

[3]  Nicholas Carriero,et al.  Linda in context , 1989, CACM.

[4]  C. Hankin,et al.  Coordination programming: mechanisms, models and semantics , 1996 .

[5]  Jeff Kramer Configuration programming-a framework for the development of distributable systems , 1990, COMPEURO'90: Proceedings of the 1990 IEEE International Conference on Computer Systems and Software Engineering@m_Systems Engineering Aspects of Complex Computerized Systems.

[6]  Carlo Ghezzi,et al.  Context-Free Graph Grammars , 1978, Inf. Control..

[7]  Daniel Le Métayer Higher-Order Multiset Programming , 1994, Specification of Parallel Algorithms.

[8]  Daniel Le Métayer,et al.  The GAMMA Model and Its Discipline of Programming , 1990, Sci. Comput. Program..

[9]  Chris Hankin,et al.  A Parallel Programming Style and Its Algebra of Programs , 1993, PARLE.

[10]  Paola Inverardi,et al.  Formal Specification and Analysis of Software Architectures Using the Chemical Abstract Machine Model , 1995, IEEE Trans. Software Eng..

[11]  A. A. Holzbacher A Software Environment for Concurrent Coordinated Programming , 1996, COORDINATION.

[12]  Chris Hankin,et al.  A Calculus of Gamma Programs , 1992, LCPC.

[13]  Bruno Courcelle,et al.  Graph Rewriting: An Algebraic and Logic Approach , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[14]  Joost Engelfriet,et al.  Context-Free Graph Grammars , 1997, Handbook of Formal Languages.

[15]  David Cohen,et al.  Introducing a Calculus for Higher-Order Multiset Programming , 1996, COORDINATION.

[16]  Daniel Le Métayer,et al.  Software architecture styles as graph grammars , 1996, SIGSOFT '96.

[17]  Edwin D. de Jong,et al.  Towards a Compositional Method for Coordinating Gamma Programs , 1996, COORDINATION.

[18]  Daniel Le Métayer,et al.  Gamma and the chemical reaction model: ten years after , 1996 .

[19]  David Garlan,et al.  Formalizing Architectural Connection , 1994, ICSE.

[20]  Christian Creveuil Techniques d'analyse et de mise en uvre des programmes gamma , 1991 .

[21]  Jean-Claude Raoult,et al.  Set-Theoretic Graph Rewriting , 1993, Dagstuhl Seminar on Graph Transformations in Computer Science.

[22]  Daniel Le Métayer,et al.  Programming by multiset transformation , 1993, CACM.

[23]  Pascal Fradet,et al.  Shape types , 1997, POPL '97.