Type checking for a multiset rewriting language
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.
Keywordsmultiset rewriting graph grammars type checking invariant verification
Unable to display preview. Download preview PDF.
- 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.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.N. Carriero and D. Gelernter, Linda in context, Communications of the ACM, Vol. 32-4, pp. 444–458, April 1989.Google Scholar
- 5.C. Creveuil. Techniques d'analyse et de mise en œuvre des programmes Gamma, Thesis, University of Rennes I, 1991.Google Scholar
- 6.P. Fradet and D. Le Métayer, Structured Gamma, Irisa Research Report PI-989, March 1996.Google Scholar
- 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.D. Garlan and D. Perry, Editor's Introduction, IEEE Transactions on Software Engineering, Special Issue on Software Architectures, 1995.Google Scholar
- 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.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.N. Klarlund and M. Schwartzbach. Graph types. In Proc. 20th Symp. on Princ. of Prog. Lang., pp. 196–205. ACM, 1993.Google Scholar
- 12.J. Kramer, Configuration programming. A framework for the development of distributable systems, Proc. COMPEURO'90, IEEE, pp. 374–384, 1990.Google Scholar
- 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