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

  title={A Truly Concurrent Semantics for the K Framework Based on Graph Transformations},
  author={Traian-Florin Serbanuta and Grigore Rosu},
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… 
Technical Report: Applicative Matching Logic: Semantics ofK
This paper proposes a simple logic called applicative matching logic (AML) as a new logical foundation for K, and shows that AML captures all the logical frameworks that have been implemented fully or partially in K, including many-sorted first-order logic (MSFOL); constructors and term algebras; and parametric sorts/types.
A Graph-Based Semantics Workbench for Concurrent Asynchronous Programs
A "semantics workbench" with fully and semi-automatic tools for Scoop, that can be used to analyse and compare programs with respect to different execution models, based on a modular and parameterisable graph transformation semantics implemented in the Groove tool.
The rewriting logic semantics project: A progress report
Towards Formal Verification of Orchestration Computations Using the 핂 Framework
A semantics-based approach for formally verifying Orc orchestrations using the \({\mathbb K}\) framework, which is not directly based on the interleaving semantics given by Orc’s SOS specification but utilizes various facilities to arrive at a clean, minimal and elegant semantic specification.
A general approach to define binders using matching logic
We propose a novel definition of binders using matching logic, where the binding behavior of object-level binders is directly inherited from the built-in exists binder of matching logic. We show that
Applicative matching logic
This paper identifies a fragment of matching μ-logic called applicative matching logic (AML), which is much simpler and thus more appealing from a foundational perspective, yet as expressive as matching μ -logic.
A Generic Framework for Symbolic Execution:Theory and Applications : Theory and Applications. (Un cadre générique pour exécution symbolique / Un cadre générique pour exécution symbolique : Theorie et Applications)
This work proves that the symbolic execution thus defined has the properties naturally expected from it and demonstrates the genericity of the tool by instantiating it on several languages, and shows how it can be used for the symbolic executions, bounded model checking, and deductive verification of several programs.
A semantics comparison workbench for a concurrent, asynchronous, distributed programming language
This workbench is based on a modular and parameterisable graph transformation semantics implemented in the Groove tool and demonstrates its use in checking the consistency of properties across semantics by applying it to a set of representative programs, and highlighting a deadlock-related discrepancy between the principal execution models of Scoop.
Maximally Parallel Contextual String Rewriting
This paper provides a method to encode the computation of a maximally parallel instance for a contextual string rewrite system as a decidable normal form problem for a particular term rewrite system.
K Overview and SIMPLE Case Study


KRAM--Extended Report
The concurrent rewrite abstract machine (KRAM), a generalization of term rewriting in which rules explicitly state what can be concurrently shared with other rules, like in graph rewriting, is presented.
An overview of the K semantic framework
An Executable Rewriting Logic Semantics of K-Scheme
The rewriting logic semantics of K-Scheme is the most complete formal definition of a language in the Scheme family that the authors are aware of, in the sense that it pro- vides definitions for more Scheme language features than any other similar attempts.
Defining Object-Oriented Execution Semantics Using Graph Transformations
This work has defined the static and dynamic semantics of a small but realistic object-oriented language (called TAAL) by mapping the language constructs to graphs and modelling their effect by graph transformation rules, which gives rise to execution models for all TAAL-programs, which can be used as the basis for formal verification.
Rewriting Logic as a Semantic Framework for Concurrency: a Progress Report
This paper surveys the work of many researchers on rewriting logic since it was first introduced in 1990. The main emphasis is on the use of rewriting logic as a semantic framework for concurrency.
Double-pushout graph transformation revisited
It is shown that injective matching provides additional expressiveness in two respects: for generating graph languages by grammars without non-terminals and for computing graph functions by convergent graph transformation systems.
A rewriting approach to concurrent programming language design and semantics
A rigorous approach to define programming languages based on rewriting is proposed, which allows to easily design and test language extensions, and to specify and analyze safety and adequacy of program executions.
Algebraic Approaches to Graph Transformation - Part I: Basic Concepts and Double Pushout Approach
This chapter starts with an overwiev of the basic notions common to the two algebraic approaches, the "double-pushout (DPO) approach) and the "single-push out (SPO) approaches"; next it is presented the classical theory and some recent development of the double- pushout approach.
Transformationas of Derivation Sequences in Graph Grammars
Basing on the Church-Rosser Theorems in /EK 76b/ analysis and synthesis of parallel derivations in graph grammars are introduced. This allows specific, transparent transformations of derivation