Type checking for a multiset rewriting language

  • Pascal Fadet
  • Dniel le M'etayer
Invited Paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1192)


We enhance Gamma, a multiset rewriting language, with a notion of structured multiset. A structured multiset is a set of addresses satisfying specific relations which can be used in the rewriting rules of the program. 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 which allows us to prove mechanically that a program maintains its data structure invariant.


multiset rewriting graph grammars type checking invariant verification 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    J.-P. Banâtre and D. Le Métayer, The Gamma model and its discipline of programming, Science of Computer Programming, Vol. 15, pp. 55–77, 1990.CrossRefGoogle Scholar
  2. 2.
    J.-P. Banâtre and D. Le Métayer. Programming by multiset transformation, Communications of the ACM, Vol. 36-1, pp. 98–111, January 1993.Google Scholar
  3. 3.
    J.-P. Banâtre and D. Le Métayer. Gamma and the chemical reaction model: ten years after, Coordination programming: mechanisms, models and semantics, Imperial College Press, 1996.Google Scholar
  4. 4.
    N. Carriero and D. Gelernter, Linda in context, Communications of the ACM, Vol. 32-4, pp. 444–458, April 1989.Google Scholar
  5. 5.
    C. Creveuil. Techniques d'analyse et de mise en œuvre des programmes Gamma, Thesis, University of Rennes I, 1991.Google Scholar
  6. 6.
    P. Fradet and D. Le Métayer, Structured Gamma, Irisa Research Report PI-989, March 1996.Google Scholar
  7. 7.
    P. Fradet and D. Le Métayer, Shape types, In Proc. of the 24rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 1997.Google Scholar
  8. 8.
    D. Garlan and D. Perry, Editor's Introduction, IEEE Transactions on Software Engineering, Special Issue on Software Architectures, 1995.Google Scholar
  9. 9.
    A. A. Holzbacher, A software environment for concurrent coordinated programming, Proc. First int. Conf. on Coordination Models, Languages and Applications, Springer Verlag, LNCS 1061, pp. 249–266, April 1996.Google Scholar
  10. 10.
    P. Inverardi and A. Wolf. Formal specification and analysis of software architectures using the chemical abstract machine model, IEEE Transactions on Software Engineering, Vol. 21, No. 4, pp. 373–386, April 1995.Google Scholar
  11. 11.
    N. Klarlund and M. Schwartzbach. Graph types. In Proc. 20th Symp. on Princ. of Prog. Lang., pp. 196–205. ACM, 1993.Google Scholar
  12. 12.
    J. Kramer, Configuration programming. A framework for the development of distributable systems, Proc. COMPEURO'90, IEEE, pp. 374–384, 1990.Google Scholar
  13. 13.
    D. Le Métayer, Software architecture styles as graph grammars, in Proc. of the ACM SIGSOFT'96 4th Symposium on the Foundations of Software Engineering, 1996, pp. 15–23.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Pascal Fadet
    • 1
  • Dniel le M'etayer
    • 1
  1. 1.Irisa/InriaRennesFrance

Personalised recommendations