A Truly Concurrent Semantics for the K Framework Based on Graph Transformations

This paper gives a truly concurrent semantics with sharing of resources for the $\mathbb{K}$ semantic framework, an executable (term-)rewriting-based formalism for defining programming languages and calculi. Akin to graph rewriting rules, the $\mathbb{K}$ (rewrite) rules explicitly state what can be concurrently shared with other rules. The desired true concurrency is obtained by translating the $\mathbb{K}$ rules into a novel instance of term-graph rewriting with explicit sharing, and then using classical concurrency results from the double-pushout (DPO) approach to graph rewriting. The resulting parallel term-rewriting relation is proved sound, complete, and serializable with respect to the jungle rewriting flavor of term-graph rewriting, and, therefore, also to term rewriting.

[1]  Chucky Ellison,et al.  An executable formal semantics of C with applications , 2011, POPL '12.

[2]  Ugo Montanari True Concurrency: Theory and Practice , 1992, MPC.

[3]  Detlef Plump,et al.  Term graph rewriting , 1999 .

[4]  Grigore Rosu,et al.  An Executable Rewriting Logic Semantics of K-Scheme , 2007 .

[5]  Marco Pistore,et al.  Modeling concurrent, mobile and coordinated systems via graph transformations , 1999 .

[6]  Antoni Mazurkiewicz Mathematical Foundations of Computer Science 1976 , 1976, Lecture Notes in Computer Science.

[7]  Hans-Jörg Kreowski,et al.  Transformationas of Derivation Sequences in Graph Grammars , 1977, FCT.

[8]  Julian Bradfield CONCUR '96: Concurrency Theory , 1996 .

[9]  Berthold Hoffmann,et al.  Implementing term rewriting by jungle evaluation , 1991, RAIRO Theor. Informatics Appl..

[10]  Gérard Berry,et al.  The chemical abstract machine , 1989, POPL '90.

[11]  MeseguerJosé Conditional rewriting logic as a unified model of concurrency , 1992 .

[12]  Hartmut Ehrig,et al.  Parallelism of Manipulations in Multidimensional Information Structures , 1976, MFCS.

[13]  Donald Sannella,et al.  Extended ML: Past, Present, and Future , 1990, ADT.

[14]  Grigore Rosu,et al.  KRAM--Extended Report , 2010 .

[15]  Grigore Rosu,et al.  An overview of the K semantic framework , 2010, J. Log. Algebraic Methods Program..

[16]  Robin Milner An Action Structure for Synchronous pi-Calculus , 1993, FCT.

[17]  Rocco De Nicola,et al.  Concurrency: theory and practice , 1996, CSUR.

[18]  Hartmut Ehrig,et al.  Graph-Grammars: An Algebraic Approach , 1973, SWAT.

[19]  Annegret Habel,et al.  Double-pushout graph transformation revisited , 2001, Mathematical Structures in Computer Science.

[20]  Reiko Heckel,et al.  Algebraic Approaches to Graph Transformation - Part I: Basic Concepts and Double Pushout Approach , 1997, Handbook of Graph Grammars.

[21]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[22]  José Meseguer,et al.  Rewriting Logic as a Semantic Framework for Concurrency: a Progress Report , 1996, CONCUR.

[23]  Grigore Rosu,et al.  A rewriting approach to concurrent programming language design and semantics , 2010 .

[24]  Fabio Gadducci,et al.  Modelling Calculi with Name Mobility using Graphs with Equivalences , 2007, Electron. Notes Theor. Comput. Sci..

[25]  Annegret Habel,et al.  Jungle evaluation , 1988, Fundam. Informaticae.

[26]  Tobias Nipkow,et al.  Term rewriting and all that , 1998 .

[27]  Arend Rensink,et al.  Defining Object-Oriented Execution Semantics Using Graph Transformations , 2006, FMOODS.