K Framework Distilled

$\mathbb{K}$ is a rewrite-based executable semantic framework in which programming languages, type systems, and formal analysis tools can be defined using configurations, computations and rules. Configurations organize the state in units called cells, which are labeled and can be nested. Computations are special nested list structures sequentializing computational tasks, such as fragments of program. $\mathbb{K}$ (rewrite) rules make it explicit which parts of the term they read-only, write-only, read-write, or do not care about. This makes $\mathbb{K}$ suitable for defining truly concurrent languages even in the presence of sharing. Computations are like any other terms in a rewriting environment: they can be matched, moved from one place to another, modified, or deleted. This makes $\mathbb{K}$ suitable for defining control-intensive features such as abrupt termination, exceptions or call/cc. This paper presents an overview of $\mathbb{K}$ Framework and the $\mathbb{K}$ Tool, focusing on the interaction between the $\mathbb{K}$ Tool and Maude.

[1]  José Meseguer,et al.  The Rewriting Logic Semantics Project: A Progress Report , 2011, FCT.

[2]  Irina Mariuca Asavoae,et al.  Collecting Semantics under Predicate Abstraction in the K Framework , 2010, WRLA.

[3]  Gilles Kahn,et al.  Natural Semantics , 1987, STACS.

[4]  Grigore Rosu,et al.  Runtime Verification of C Memory Safety , 2009, RV.

[5]  Dorel Lucanu,et al.  The K Primer (version 2.5) , 2012 .

[6]  Chucky Ellison,et al.  A Rewriting Logic Approach to Type Inference , 2009, WADT.

[7]  Grigore Rosu,et al.  Matching logic: a new program verification approach (NIER track) , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[8]  Gheorghe Stefanescu,et al.  Defining and Executing P Systems with Structured Data in K , 2009, Workshop on Membrane Computing.

[9]  José Meseguer,et al.  Rewriting Logic Semantics: From Language Specifications to Formal Analysis Tools , 2004, IJCAR.

[10]  Mihail Asavoae K Semantics for Assembly Languages: A Case Study , 2014, Electron. Notes Theor. Comput. Sci..

[11]  José Meseguer,et al.  Conditioned Rewriting Logic as a United Model of Concurrency , 1992, Theor. Comput. Sci..

[12]  Dorel Lucanu,et al.  K Semantics for OCL - a Proposal for a Formal Definition for OCL , 2011 .

[13]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[14]  Irina Mariuca Asavoae Abstract Semantics for Alias Analysis in K , 2014, Electron. Notes Theor. Comput. Sci..

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

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

[17]  S TraianFlorin A Rewriting Logic Approach to Operational Semantics , 2010 .

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

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

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

[21]  Narciso Martí-Oliet,et al.  All About Maude - A High-Performance Logical Framework, How to Specify, Program and Verify Systems in Rewriting Logic , 2007, All About Maude.

[22]  Dorel Lucanu,et al.  A K-Based Formal Framework for Domain-Specific Modelling Languages , 2011, FoVeOOS.

[23]  Bernhard Beckert,et al.  Formal Verification of Object-Oriented Software - International Conference, FoVeOOS 2010, Paris, France, June 28-30, 2010, Revised Selected Papers , 2011, FoVeOOS.

[24]  Chucky Ellison,et al.  Matching Logic: An Alternative to Hoare/Floyd Logic , 2010, AMAST.

[25]  José Meseguer,et al.  Formal Analysis of Java Programs in JavaFAN , 2004, CAV.

[26]  Irina Mariuca Asavoae,et al.  Path Directed Symbolic Execution in the K Framework , 2010, 2010 12th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing.

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

[28]  Peter D. Mosses,et al.  Modular structural operational semantics , 2004, J. Log. Algebraic Methods Program..

[29]  Klaus Havelund,et al.  Model checking JAVA programs using JAVA PathFinder , 2000, International Journal on Software Tools for Technology Transfer.

[30]  Xuejun Yang,et al.  Test-case reduction for C compiler bugs , 2012, PLDI.

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

[32]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[33]  José Meseguer,et al.  The Rewriting Logic Semantics Project , 2006, Electron. Notes Theor. Comput. Sci..

[34]  Chucky Ellison,et al.  Making Maude Definitions More Interactive , 2012, WRLA.

[35]  Mitchell Wand,et al.  Essentials of programming languages , 2008 .

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

[37]  Frank S. de Boer,et al.  Bounded Model Checking of Recursive Programs with Pointers in K , 2012, WADT.

[38]  Grigore Rosu CS322 Fall 2003: Programming Language Design -Lecture Notes- , 2003 .

[39]  Larry Wos,et al.  What Is Automated Reasoning? , 1987, J. Autom. Reason..

[40]  José Meseguer,et al.  Equational Abstractions , 2003, CADE.

[41]  Mitchell Wand,et al.  Essentials of programming languages (2nd ed.) , 2001 .

[42]  Grigore Rosu,et al.  Towards semantics-based WCET analysis , 2011, ECRTS 2011.

[43]  Alberto Verdejo,et al.  Implementing CCS in Maude 2 , 2002, Electron. Notes Theor. Comput. Sci..

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

[45]  Lasse R. Nielsen,et al.  Refocusing in Reduction Semantics , 2004 .

[46]  Martin Wirsing,et al.  Extraction of Structured Programs from Specification Proofs , 1999, WADT.