Results 1 
6 of
6
The Rewriting Logic Semantics Project
 SOS 2005 PRELIMINARY VERSION
, 2005
"... Rewriting logic is a flexible and expressive logical framework that unifies denotational semantics and SOS in a novel way, avoiding their respective limitations and allowing very succinct semantic definitions. The fact that a rewrite theory’s axioms include both equations and rewrite rules provides ..."
Abstract

Cited by 39 (11 self)
 Add to MetaCart
Rewriting logic is a flexible and expressive logical framework that unifies denotational semantics and SOS in a novel way, avoiding their respective limitations and allowing very succinct semantic definitions. The fact that a rewrite theory’s axioms include both equations and rewrite rules provides a very useful “abstraction knob” to find the right balance between abstraction and observability in semantic definitions. Such semantic definitions are directly executable as interpreters in a rewriting logic language such as Maude, whose generic formal tools can be used to endow those interpreters with powerful program analysis capabilities.
An Executable Rewriting Logic Semantics of KScheme, in: D. Dube (Ed
 Laval University
, 2007
"... This paper presents an executable rewriting logic semantics of KScheme, a dialect of Scheme based (partially) on the informal definition given in the R 5 RS report (Kelsey et al. 1998). The presented semantics follows the K language definitional style (Ros¸u 2005 and 2006) and is a pure rewriting l ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
This paper presents an executable rewriting logic semantics of KScheme, a dialect of Scheme based (partially) on the informal definition given in the R 5 RS report (Kelsey et al. 1998). The presented semantics follows the K language definitional style (Ros¸u 2005 and 2006) and is a pure rewriting logic specification (Meseguer 1992) containing 772 equations and 1 rewrite rule, so it can also be regarded as an algebraic denotational specification with an initial model semantics. Rewriting logic specifications can be executed on common (contextinsensitive) rewrite engines, provided that equations are oriented into rewrite rules, typically from lefttoright. While in theory rewriting logic specifications can let certain behaviors underspecified, thus allowing more models, in practice they need to completely specify all the desired behaviors if one wants to use their associated rewrite systems as “interpreters”, or “implementations”. To become executable, KScheme overspecifies certain features left undefined on purpose in R 5 RS. In spite of overspecifying for executability reasons, the rewriting logic semantics in this paper is the most complete formal definition of a language in the Scheme family that we are aware of, in the sense that it provides definitions for more Scheme language features than any other similar attempts. The presented executable definition of KScheme can serve as a platform for experimentation with variants and extensions of Scheme, for example concurrency. The Maude system is used in this paper, but other rewrite engines could have been used as well. Even though, on paper, K rewritebased definitions tend to be as compact and highlevel as reductionbased definitions with evaluation contexts, their complete translation in Maude as executable specifications is rather verbose and lowlevel. An automated translator from K to Maude is under development, which will reduce the size of definitions following the K style several times and will certainly increase their readability. The complete Maude specification is public, together with a webbased interface to “execute” KScheme programs without having to download Maude.
A K Definition of Scheme ⋆
"... Abstract. This paper presents an executable rewriting logic semantics of R 5 RS Scheme using the K definitional technique [19]. We refer to this definition as KScheme. The presented semantics follows the K language definitional style but is almost entirely equational. It can also be regarded as a d ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Abstract. This paper presents an executable rewriting logic semantics of R 5 RS Scheme using the K definitional technique [19]. We refer to this definition as KScheme. The presented semantics follows the K language definitional style but is almost entirely equational. It can also be regarded as a denotational specification with an initial model semantics of Scheme. Equational specifications can be executed on common rewrite engines, provided that equations are oriented into rewrite rules, typically from lefttoright. The rewriting logic semantics in this paper is the most complete formal definition of Scheme that we are aware of, in the sense that it provides definitions for more Scheme language features than any other similar attempts. The presented executable definition, KScheme, can serve as a platform for experimentation with variants and extensions of Scheme, for example concurrency. KScheme also serves to show the viability of K as a definitional framework for programming languages.
An Equational Specification for the Scheme Language
"... Abstract. This work describes the formal semantics of SCHEME 1 as an equational theory in the MAUDE rewriting system. The semantics is based on continuations and is highly modular. We briefly investigate the relationship between our methodology for defining programming languages and other semantic f ..."
Abstract
 Add to MetaCart
Abstract. This work describes the formal semantics of SCHEME 1 as an equational theory in the MAUDE rewriting system. The semantics is based on continuations and is highly modular. We briefly investigate the relationship between our methodology for defining programming languages and other semantic formalisms. We conclude by showing some performance results of the interpreter obtained for free from the executable specification. 1.
An Equational Specification for the Scheme Language
"... Abstract. This work describes the formal semantics of SCHEME 1 as an equational theory in the MAUDE rewriting system. The semantics is based on continuations and is highly modular. We briefly investigate the relationship between our methodology for defining programming languages and other semantic f ..."
Abstract
 Add to MetaCart
Abstract. This work describes the formal semantics of SCHEME 1 as an equational theory in the MAUDE rewriting system. The semantics is based on continuations and is highly modular. We briefly investigate the relationship between our methodology for defining programming languages and other semantic formalisms. We conclude by showing some performance results of the interpreter obtained for free from the executable specification. 1.
Computational Logical Frameworks and Generic Program Analysis Technologies
"... The technologies developed to solve the verifying compiler grand challenge should be generic, that is, not tied to a particular language but widely applicable to many languages. Such technologies should also be semanticsbased, that is, based on a rigorous formal semantics of the languages. For this ..."
Abstract
 Add to MetaCart
The technologies developed to solve the verifying compiler grand challenge should be generic, that is, not tied to a particular language but widely applicable to many languages. Such technologies should also be semanticsbased, that is, based on a rigorous formal semantics of the languages. For this, a computational logical framework with efficient executability and a spectrum of metatools can serve as a basis on which to: (1) define the formal semantics of any programming language; and (2) develop generic program analysis techniques and tools that can be instantiated to generate powerful analysis tools for each language of interest. Not all logical frameworks can serve such purposes well. We first list some specific requirements that we think are important to properly address the grand challenge. Then we present our experience with rewriting logic as supported by the Maude system and its formal tool environment. Finally, we discuss some future directions of research. 2 Logical Framework Requirements Based on experience, current trends, and the basic requirements of the grand challenge problem, we believe that any logical framework serving as a computational infrastructure for the various technologies for solving the grand challenge should have at least the following features: 1. good data representation capabilities, 2. support for concurrency and nondeterminism, 3. simplicity of the formalism, 1 4. efficient implementability, and efficient metatools, 5. support for reflection, 6. support for inductive reasoning, preferably with initial model semantics, 7. support for generation of proof objects, acting as correctness certificates. While proponents of a framework may claim that it has all these features, in some cases further analysis can show that it either lacks some of them, or can only “simulate ” certain features in a quite artificial way. A good example is the simulation/elimination of concurrency in inherently deterministic formalisms by implementing or defining thread/process scheduling algorithms. Another example might be the claim that the lambda calculus has good data representation capabilities because one can encode numbers as Church numerals.