Rewriting Logic Semantics

From FSL

Jump to: navigation, search

Rewriting logic can be used to create executable definitions of programming languages, yielding interpreters for the defined languages which run programs directly in the language semantics. This also yields definitions of languages that can be used for formal reasoning about language properties. Examples include model checking, state-space exploration for programs with potentially unbounded state spaces, theorem proving, partial correctness via Hoare logics, and type safety/type checking.

Contents

[edit] Definitions of Existing Languages

We have defined several existing languages using rewriting logic. These definitions can be used to both run programs in the defined language and reason about the language, and have been used in a number of contexts.

  • Lambda Calculus, a commonly-used language calculus which has served as a model for many functional languages
  • Beta, a statically-typed object-oriented programming language derived from Simula 67, where the unifying concept of pattern has replaced classes and methods
  • Java, a statically-typed, class-based object-oriented programming language
  • Prolog, a logic programming language (only partially defined)
  • Scheme, a very faithful semantics of Scheme, a functional language with strong reflection and meta-programming capabilities.

[edit] Definitions of Sample Languages

We have also defined a number of research languages using rewriting logic. These have value both as examples of specific paradigms of languages (functional, imperative, object-oriented) and as basis languages which we can use in our research.

  • SILF, a Simple Imperative Language with Functions, used for illustrating our framework
  • CSILF, a Concurrent version of SILF, used to illustrate the addition of simple concurrency features and verification of concurrent programs
  • KOOL, a dynamically typed object-oriented language

[edit] Annotated Bibliography

This bibliography provides a set of related readings for those interested in rewriting logic semantics and our approach to defining executable semantics for languages. Click Rewriting Logic Semantics Readings for more information.

[edit] Publications

Runtime Verification of C Memory Safety 
Grigore Rosu, Wolfram Schulte and Traian Florin Serbanuta
RV'09, LNCS 5779, pp 132-151. 2009
PDF, RV slides, RV'09, LNCS, BIB
A Rewriting Logic Approach to Static Checking of Units of Measurement in C 
Mark Hills, Feng Chen and Grigore Rosu
Image:New.gif RULE'08, ENTCS, to appear, 2008
PDF, RULE'08 slides, RULE'08, BIB
Memory Representations in Rewriting Logic Semantics Definitions 
Mark Hills
Image:New.gif WRLA'08, ENTCS, to appear, 2008
PDF, WRLA'08 slides, WRLA'08, BIB
A K Definition of Scheme 
Patrick Meredith, Mark Hills and Grigore Rosu
Technical Report UIUCDCS-R-2007-2907, October 2007
PDF, TR@UIUC, BIB
An Executable Rewriting Logic Semantics of K-Scheme 
Patrick Meredith, Mark Hills and Grigore Rosu
8th Workshop on Scheme and Functional Programming, Technical Report DIUL-RT-0701, pp. 91-103, September 2007
PDF, SCHEME'07, BIB
A Rewriting Approach to the Design and Evolution of Object-Oriented Languages 
Mark Hills and Grigore Rosu
Technical Report Bericht-Nr. 2007-7, pp. 23-26, July 2007
PDF, ECOOP'07 Doctoral Symposium slides, ECOOP'07 Doctoral Symposium, BIB
A Rewriting Logic Approach to Operational Semantics -- Extended Abstract 
Traian Florin Serbanuta, Grigore Rosu and Jose Meseguer
SOS'07, ENTCS 192(1), pp 125-141. 2007
PDF, SOS'07 Slides, ENTCS, SOS'07, BIB
KOOL: An Application of Rewriting Logic to Language Prototyping and Analysis 
Mark Hills and Grigore Rosu
RTA'07, LNCS 4533, pp 246-256. 2007
PDF, RTA'07 slides, LNCS, RTA'07, BIB
On Formal Analysis of OO Languages using Rewriting Logic: Designing for Performance 
Mark Hills and Grigore Rosu
FMOODS'07, LNCS 4468, pp 107-121. 2007
PDF, FMOODS'07 slides, LNCS, FMOODS'07, BIB
The Rewriting Logic Semantics Project 
Jose Meseguer and Grigore Rosu
Image:New.gif J. of TCS, Volume 373(3), pp 213-237. 2007
PDF, J.TCS, BIB
A Rewrite Framework for Language Definitions and for Generation of Efficient Interpreters 
Mark Hills, Traian Florin Serbanuta and Grigore Rosu
WRLA'06, ENTCS 176(4), pp. 215-231. 2007
PDF, Experiments, ENTCS, WRLA'06, BIB
K: a Rewrite-based Framework for Modular Language Design, Semantics, Analysis and Implementation 
Grigore Rosu
Technical report UIUCDCS-R-2006-2802, December 2006
PDF, TR@UIUC, BIB
A Rewriting Based Approach to OO Language Prototyping and Design 
Mark Hills and Grigore Rosu
Technical Report UIUCDCS-R-2006-2786, October 2006
PDF, TR@UIUC, BIB
KOOL: A K-based Object-Oriented Language 
Mark Hills and Grigore Rosu
Technical Report UIUCDCS-R-2006-2779, October 2006
PDF, TR@UIUC, BIB
Haskell-RL: An Equational Specification of Haskell in Maude 
Andrew Bennett
MS CS Thesis Submission
PDF, semantics
A Rewrite Logic Approach to Semantic Definition, Design and Analysis of Object-Oriented Languages 
Feng Chen, Mark Hills and Grigore Rosu
Technical Report UIUCDCS-R-2006-2702, March 2006
PDF, TR@UIUC, BIB
K: a Rewrite-based Framework for Modular Language Design, Semantics, Analysis and Implementation 
Grigore Rosu
Technical Report UIUCDCS-R-2005-2672, December 2005
PDF, Experiments, BIB
An Executable Semantic Definition of the Beta Language using Rewriting Logic 
Mark Hills, T. Baris Aktemur and Grigore Rosu
Technical Report UIUCDCS-R-2005-2650, November 2005
PDF, TR@UIUC, BIB
The Rewriting Logic Semantics Project 
Jose Meseguer and Grigore Rosu
SOS'05, ENTCS 156, pp. 27-56. 2006
PDF, SOS'05, BIB
Formal Analysis of Java Programs in JavaFAN 
Azadeh Farzan, Feng Chen, Jose Meseguer and Grigore Rosu
CAV'04, LNCS 3114, pp 501 - 505. 2004.
PDF, LNCS, CAV'04, DBLP, BIB
CS322 - Programming Language Design: Lecture Notes 
Grigore Rosu
Technical Report UIUCDCS-R-2003-2897, December 2003
PDF, TR @ UIUC, BIB
Hidden Logic 
Grigore Rosu
PhD Thesis, University of California at San Diego
PDF, Thesis@UCSD, BIB

[edit] Other Presentations

Current progress, as of April 2006, presented at 25px-Pdf_icon.png MSPLS Spring 2006 Info_circle.png.

Views
Personal tools