Language Definitions as Rewrite Theories

\(\mathbb {K}\)is a formal framework for defining the operational semantics of programming languages. It includes software tools for compiling \(\mathbb {K}\)language definitions to Maude rewrite theories, for executing programs in the defined languages based on the Maude rewriting engine, and for analyzing programs by adapting various Maude analysis tools. A recent extension to the \(\mathbb {K}\)tool suite is an automatic transformation of language definitions that enables the symbolic execution of programs, i.e., the execution of programs with symbolic inputs. In this paper we investigate the theoretical relationships between \(\mathbb {K}\)language definitions and their translations to Maude, between symbolic extensions of \(\mathbb {K}\)definitions and their Maude encodings, and how the relations between \(\mathbb {K}\)definitions and their symbolic extensions are reflected on their respective representations in Maude. These results show, in particular, how analyses performed with Maude tools can be formally lifted up to the original language definitions.

[1]  Patrick Viry,et al.  Equational rules for rewriting logic , 2002, Theor. Comput. Sci..

[2]  José Meseguer,et al.  Equational abstractions , 2008, Theor. Comput. Sci..

[3]  José Meseguer,et al.  State Space Reduction of Rewrite Theories Using Invisible Transitions , 2006, AMAST.

[4]  José Meseguer,et al.  Rewriting Modulo SMT , 2013 .

[5]  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.

[6]  Grigore Rosu,et al.  K Framework Distilled , 2012, WRLA.

[7]  Grigore Rosu,et al.  One-Path Reachability Logic , 2013, 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science.

[8]  Francisco Durán,et al.  On the Church-Rosser and Coherence Properties of Conditional Order-Sorted Rewrite Theories 1 , 2010 .

[9]  Grigore Rosu,et al.  Language definitions as rewrite theories , 2016, J. Log. Algebraic Methods Program..

[10]  Dorel Lucanu,et al.  A Generic Framework for Symbolic Execution , 2013, SLE.

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

[12]  Grigore Rosu,et al.  K-Maude: A Rewriting Based Tool for Semantics of Programming Languages , 2010, WRLA.

[13]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[14]  Grigore Rosu,et al.  Checking reachability using matching logic , 2012, OOPSLA '12.

[15]  Grigore Rosu Matching Logic - Extended Abstract (Invited Talk) , 2015, RTA.

[16]  José Meseguer,et al.  Rewriting modulo SMT and open system analysis , 2014, J. Log. Algebraic Methods Program..