A Rewriting Logic Approach to Operational Semantics (Extended Abstract)

This paper shows how rewriting logic semantics (RLS) can be used as a computational logic framework for operational semantic definitions of programming languages. Several operational semantics styles are addressed: big-step and small-step structural operational semantics (SOS), modular SOS, reduction semantics with evaluation contexts, and continuation-based semantics. Each of these language definitional styles can be faithfully captured as an RLS theory, in the sense that there is a one-to-one correspondence between computational steps in the original language definition and computational steps in the corresponding RLS theory. A major goal of this paper is to show that RLS does not force or pre-impose any given language definitional style, and that its flexibility and ease of use makes RLS an appealing framework for exploring new definitional styles.

[1]  Arie van Deursen,et al.  Language Prototyping: An Algebraic Specification Approach , 1996, AMAST Series in Computing.

[2]  Patrick Borras,et al.  Centaur: the system , 1988, Software Development Environments.

[3]  Fabio Gadducci,et al.  Comparing logics for rewriting: rewriting logic, action calculi and tile logic , 2002, Theor. Comput. Sci..

[4]  G. Plotkin,et al.  Proof, language, and interaction: essays in honour of Robin Milner , 2000 .

[5]  Razvan Diaconescu,et al.  Cafeobj Report - The Language, Proof Techniques, and Methodologies for Object-Oriented Algebraic Specification , 1998, AMAST Series in Computing.

[6]  Philip Wadler,et al.  The essence of functional programming , 1992, POPL '92.

[7]  Egon Börger,et al.  Java and the Java Virtual Machine: Definition, Verification, Validation , 2001 .

[8]  Narciso Martí-Oliet,et al.  Maude: specification and programming in rewriting logic , 2002, Theor. Comput. Sci..

[9]  Pierre Lescanne,et al.  λν, a calculus of explicit substitutions which preserves strong normalisation , 1996, Journal of Functional Programming.

[10]  Mitchell Wand,et al.  Continuation-Based Program Transformation Strategies , 1980, JACM.

[11]  Narciso Martí-Oliet,et al.  Rewriting Logic as a Logical and Semantic Framework , 1996 .

[12]  Fabio Gadducci,et al.  The tile model , 2000, Proof, Language, and Interaction.

[13]  Fabricio Chalub,et al.  Maude MSOS Tool , 2007, WRLA.

[14]  Robin Milner,et al.  Definition of standard ML , 1990 .

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

[16]  Mark-Oliver Stehr,et al.  CINNI - A Generic Calculus of Explicit Substitutions and its Application to lambda-, varsigma- and pi- Calculi , 2000, WRLA.

[17]  Joseph A. Goguen,et al.  Algebraic semantics of imperative programs , 1996, Foundations of computing series.

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

[19]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[20]  Dale A. Miller,et al.  AN OVERVIEW OF PROLOG , 1988 .

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

[22]  Paul Klint,et al.  Compiling language definitions: the ASF+SDF compiler , 2000, TOPL.

[23]  Grigore Rosu K: a Rewrite-based Framework for Modular Language Design, Semantics, Analysis and Implementation -Version 1- , 2005 .

[24]  Egon Börger Specification and validation methods , 1995 .

[25]  José Meseguer,et al.  Mapping tile logic into rewriting logic , 1997, WADT.

[26]  Martín Abadi,et al.  Explicit substitutions , 1989, POPL '90.

[27]  Dana S. Scott,et al.  Outline of a Mathematical Theory of Computation , 1970 .

[28]  Yuri Gurevich,et al.  Evolving algebras 1993: Lipari guide , 1995, Specification and validation methods.

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

[30]  José Meseguer,et al.  Modular Rewriting Semantics of Programming Languages , 2004, AMAST.

[31]  Teodor Rus,et al.  AMAST series in computing , 1993 .

[32]  Dale Miller,et al.  Representing and Reasoning with Operational Semantics , 2006, IJCAR.

[33]  Alberto Verdejo,et al.  Executable structural operational semantics in Maude , 2006, J. Log. Algebraic Methods Program..

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

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

[36]  Eelco Visser,et al.  Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems in Stratego/XT 0.9 , 2003, Domain-Specific Program Generation.

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

[38]  Eugenio Moggi,et al.  Notions of Computation and Monads , 1991, Inf. Comput..

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

[40]  José Meseguer,et al.  A rewriting logic approach to operational semantics , 2009, Inf. Comput..

[41]  John C. Reynolds,et al.  The discoveries of continuations , 1993, LISP Symb. Comput..

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

[43]  Dominique Clément,et al.  Natural semantics on the computer , 1984 .

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

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

[46]  Panagiotis Manolios,et al.  Computer-aided reasoning : ACL2 case studies , 2000 .