Results 1 - 10
of
35
Rewriting Logic Semantics: From Language Specifications to Formal Analysis Tools
- In Proceedings of the IJCAR 2004. LNCS
, 2004
"... Abstract. Formal semantic definitions of concurrent languages, when specified in a well-suited semantic framework and supported by generic and efficient formal tools, can be the basis of powerful software analysis tools. Such tools can be obtained for free from the semantic definitions; in our exper ..."
Abstract
-
Cited by 32 (8 self)
- Add to MetaCart
Abstract. Formal semantic definitions of concurrent languages, when specified in a well-suited semantic framework and supported by generic and efficient formal tools, can be the basis of powerful software analysis tools. Such tools can be obtained for free from the semantic definitions; in our experience in just the few weeks required to define a language’s semantics even for large languages like Java. By combining, yet distinguishing, both equations and rules, rewriting logic semantic definitions unify both the semantic equations of equational semantics (in their higher-order denotational version or their first-order algebraic counterpart) and the semantic rules of SOS. Several limitations of both SOS and equational semantics are thus overcome within this unified framework. By using a high-performance implementation of rewriting logic such as Maude, a language’s formal specification can be automatically transformed into an efficient interpreter. Furthermore, by using Maude’s breadth first search command, we also obtain for free a semi-decision procedure for finding failures of safety properties; and by using Maude’s LTL model checker, we obtain, also for free, a decision procedure for LTL properties of finite-state programs. These possibilities, and the competitive performance of the analysis tools thus obtained, are illustrated by means of a concurrent Caml-like language; similar experience with Java (source and JVM) programs is also summarized. 1
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 31 (10 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.
A document-oriented paradigm for the construction of content-intensive applications
- The Computer Journal
, 2006
"... In this paper we describe our work on the formulation of a document-oriented paradigm for improving the construction and maintenance of content-intensive applications (i.e. applications that make intensive use of the information provided by the experts in a given domain: the contents). According to ..."
Abstract
-
Cited by 12 (9 self)
- Add to MetaCart
In this paper we describe our work on the formulation of a document-oriented paradigm for improving the construction and maintenance of content-intensive applications (i.e. applications that make intensive use of the information provided by the experts in a given domain: the contents). According to this paradigm, the development of a content-intensive application must be the result of close collaboration between two kinds of actors: domain experts and developers. The goal of this collaboration is the authoring of (i) a set of documents describing the most relevant aspects of the application (i.e. the contents and other relevant customizable features); (ii) a grammar describing a domain-specific markup language that will be used to make the structure and the data in these documents explicit and (iii) a suitable processor for this language. The final running application will be automatically produced by processing the marked documents with this processor. The use of this paradigm in the development of content-intensive applications can increase the initial cost of application production, but in the long run it can substantially improve maintenance and portability, and promote information and software reuse as well. We have successfully applied this paradigm to the development of educational and hypermedia applications, and knowledge-based systems. From these experiences, we have found that the feasibility of the paradigm depends to a
Substructural operational semantics and linear destination-passing style
- Proceedings of the 2nd Asian Symposium on Programming Languages and Systems (APLAS’04
, 2004
"... We introduce substructural operational semantics (SSOS), a presentation form for the semantics of programming languages. It combines ideas from structural operational semantics and type theories based on substructural logics (such as linear logic) in order to obtain a rich, uniform, and modular fram ..."
Abstract
-
Cited by 9 (6 self)
- Add to MetaCart
We introduce substructural operational semantics (SSOS), a presentation form for the semantics of programming languages. It combines ideas from structural operational semantics and type theories based on substructural logics (such as linear logic) in order to obtain a rich, uniform, and modular framework. We illustrate SSOS with a sequence of specifications, starting from a simple functional language presented in linear destination-passing style (LDPS). Next we show how to extend the first specification modularly (that is, by adding new rules for new constructs without changing earlier rules) to treat imperative and concurrent constructs. We briefly compare our means of achieving modularity with that of modular structural operational semantics [1] and contextual semantics [2]. We then discuss how structural properties of configurations (on which the operational semantics is defined) are related to structural properties of various forms of hypothetical judgments originating in the study of linear logic and type theory. Ordered, linear, affine, and unrestricted hypothetical judgments can be
Substructural Operational Semantics as Ordered Logic Programming
"... We describe a substructural logic with ordered, linear, and persistent propositions and then endow a fragment with a committed choice forward-chaining operational interpretation. Exploiting higher-order terms in this metalanguage, we specify the operational semantics of a number of object language f ..."
Abstract
-
Cited by 9 (6 self)
- Add to MetaCart
We describe a substructural logic with ordered, linear, and persistent propositions and then endow a fragment with a committed choice forward-chaining operational interpretation. Exploiting higher-order terms in this metalanguage, we specify the operational semantics of a number of object language features, such as call-by-value, call-by-name, call-by-need, mutable store, parallelism, communication, exceptions and continuations. The specifications exhibit a high degree of uniformity and modularity that allows us to analyze the structural properties required for each feature in isolation. Our substructural framework thereby provides a new methodology for language specification that synthesizes structural operational semantics, abstract machines, and logical approaches. 1
A Modular Rewriting Semantics for CML
- Journal of Universal Computer Science
, 2004
"... Abstract: This paper presents a modular rewriting semantics (MRS) specification for Reppy’s Concurrent ML (CML), based on Peter Mosses ’ modular structural operational semantics specification for CML. A modular rewriting semantics specification for a programming language is a rewrite theory in rewri ..."
Abstract
-
Cited by 8 (1 self)
- Add to MetaCart
Abstract: This paper presents a modular rewriting semantics (MRS) specification for Reppy’s Concurrent ML (CML), based on Peter Mosses ’ modular structural operational semantics specification for CML. A modular rewriting semantics specification for a programming language is a rewrite theory in rewriting logic written using techniques that support the modular development of the specification in the precise sense that every module extension is conservative. We show that the MRS of CML can be used to interpret CML programs using the rewrite engine of the Maude system, a highperformance implementation of rewriting logic, and to verify CML programs using Maude’s built-in LTL model checker. It is assumed that the reader is familiar with basic concepts of structural operational semantics and algebraic specifications.
Polymorphic embedding of DSLs
- In GPCE’08. ACM
, 2008
"... The influential pure embedding methodology of embedding domainspecific languages (DSLs) as libraries into a general-purpose host language forces the DSL designer to commit to a single semantics. This precludes the subsequent addition of compilation, optimization or domain-specific analyses. We propo ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
The influential pure embedding methodology of embedding domainspecific languages (DSLs) as libraries into a general-purpose host language forces the DSL designer to commit to a single semantics. This precludes the subsequent addition of compilation, optimization or domain-specific analyses. We propose polymorphic embedding of DSLs, where many different interpretations of a DSL can be provided as reusable components, and show how polymorphic embedding can be realized in the programming language Scala. With polymorphic embedding, the static type-safety, modularity, composability and rapid prototyping of pure embedding are reconciled with the flexibility attainable by external toolchains. Categories and Subject Descriptors D.3.2 [Programming Languages]: Language Classifications—Extensible languages, Specialized
Correctness of Java Card Method Lookup via Logical Relations (Extended Abstract)
- In 9th European Symp. on Programming (ESOP
, 2000
"... We present a formalisation of the bytecode optimisation of Sun's Java Card language from the class file to CAP file format as a set of constraints between the two formats, and define and prove its correctness. Java Card bytecode is formalised as an abstract operational semantics, which can then ..."
Abstract
-
Cited by 6 (4 self)
- Add to MetaCart
We present a formalisation of the bytecode optimisation of Sun's Java Card language from the class file to CAP file format as a set of constraints between the two formats, and define and prove its correctness. Java Card bytecode is formalised as an abstract operational semantics, which can then be instantiated into the two formats. The optimisation is given as a logical relation such that the instantiated semantics are observably equal.
Language-Driven Development of Videogames: The Experience
- In 5th International Conference in Entertainment Computing (ICEC
, 2006
"... Abstract. In this paper we describe a language-driven approach to the development of videogames. In our approach the development process starts with the design of a suitable domain-specific language for building games, along with an abstract syntax for the language and its operational semantics. Nex ..."
Abstract
-
Cited by 6 (5 self)
- Add to MetaCart
Abstract. In this paper we describe a language-driven approach to the development of videogames. In our approach the development process starts with the design of a suitable domain-specific language for building games, along with an abstract syntax for the language and its operational semantics. Next an engine supporting the language is built. Finally games are built using the customized language and they are executed using the engine. This approach is exemplified with the <e-Game> project, which delivers the design of a language and the construction of an engine for the documental development of graphical adventure videogames with educational purposes. 1.

