Results 1  10
of
16
Maude: Specification and Programming in Rewriting Logic
, 2001
"... Maude is a highlevel language and a highperformance system supporting executable specification and declarative programming in rewriting logic. Since rewriting logic contains equational logic, Maude also supports equational specification and programming in its sublanguage of functional modules and ..."
Abstract

Cited by 210 (66 self)
 Add to MetaCart
Maude is a highlevel language and a highperformance system supporting executable specification and declarative programming in rewriting logic. Since rewriting logic contains equational logic, Maude also supports equational specification and programming in its sublanguage of functional modules and theories. The underlying equational logic chosen for Maude is membership equational logic, that has sorts, subsorts, operator overloading, and partiality definable by membership and equality conditions. Rewriting logic is reflective, in the sense of being able to express its own metalevel at the object level. Reflection is systematically exploited in Maude endowing the language with powerful metaprogramming capabilities, including both userdefinable module operations and declarative strategies to guide the deduction process. This paper explains and illustrates with examples the main concepts of Maude's language design, including its underlying logic, functional, system and objectoriented modules, as well as parameterized modules, theories, and views. We also explain how Maude supports reflection, metaprogramming and internal strategies. The paper outlines the principles underlying the Maude system implementation, including its semicompilation techniques. We conclude with some remarks about applications, work on a formal environment for Maude, and a mobile language extension of Maude.
Building Equational Proving Tools by Reflection in Rewriting Logic
 In Cafe: An IndustrialStrength Algebraic Formal Method
, 1998
"... This paper explains the design and use of two equational proving tools, namely an inductive theorem prover  to prove theorems about equational specifications with an initial algebra semantics  and a ChurchRosser checkerto check whether such specifications satisfy the ChurchRosser property. ..."
Abstract

Cited by 41 (22 self)
 Add to MetaCart
This paper explains the design and use of two equational proving tools, namely an inductive theorem prover  to prove theorems about equational specifications with an initial algebra semantics  and a ChurchRosser checkerto check whether such specifications satisfy the ChurchRosser property. These tools can be used to prove properties of ordersorted equational specifications in Cafe [11] and of membership equational logic specifications in Maude [7, 6]. The tools have been written entirely in Maude and are in fact executable specifications in rewriting logic of the formal inference systems that they implement.
Maude as a Formal MetaTool
 FM’99 — Formal Methods, World Congress on Formal Methods in the Development of Computing Systems
, 1999
"... Given the different perspectives from which a complex software system has to be analyzed, the multiplicity of formalisms is unavoidable. This poses two important technical challenges: how to rigorously meet the need to interrelate formalisms, and how to reduce the duplication of effort in tool a ..."
Abstract

Cited by 40 (14 self)
 Add to MetaCart
Given the different perspectives from which a complex software system has to be analyzed, the multiplicity of formalisms is unavoidable. This poses two important technical challenges: how to rigorously meet the need to interrelate formalisms, and how to reduce the duplication of effort in tool and specification building across formalisms. These challenges could be answered by adequate formal metatools that, when given the specification of a formal inference system, generate an efficient inference engine, and when given a specification of two formalisms and a translation, generate an actual translator between them. Similarly, module composition operations that are logicindependent, but that at present require costly implementation efforts for each formalism, could be provided for logics in general by module algebra generator metatools. The foundations of metatools of this kind can be based on a metatheory of general logics. Their actual design and implementation can be based on appropriate logical frameworks having efficient implementations. This paper explains how the reflective logical framework of rewriting logic can be used, in conjunction with an efficient reflective implementation such as the Maude language, to design formal metatools such as those described above. The feasibility of these ideas and techniques has been demonstrated by a number of substantial experiments in which new formal tools and new translations between formalisms, efficient enough to be used in practice, have been generated. 1
Metalevel Computation in Maude
, 1998
"... Maude's language design and implementation make systematic use of the fact that rewriting logic is reflective. This makes the metatheory of rewriting logic accessible to the user in a clear and principled way, and makes possible many advanced metaprogramming applications, including userdefinab ..."
Abstract

Cited by 11 (7 self)
 Add to MetaCart
Maude's language design and implementation make systematic use of the fact that rewriting logic is reflective. This makes the metatheory of rewriting logic accessible to the user in a clear and principled way, and makes possible many advanced metaprogramming applications, including userdefinable strategy languages, language extensions by new module composition operations, development of theorem proving tools, and reifications of other languages and logics within rewriting logic. A naive implementation of reflection can be computationally very expensive. We explain the semantic principles and implementation techniques through which efficient ways of performing reflective computations are achieved in Maude through its predefined METALEVEL module.
Logical Specification of Operational Semantics
 IN CSL'99, PROC. CONF. ON COMPUTER SCIENCE LOGIC, VOLUME 1683 OF LNCS
, 1999
"... Various logicbased frameworks have been proposed for specifying the operational semantics of programming languages and concurrent systems, including inference systems in the styles advocated by Plotkin and by Kahn, Horn logic, equational specifications, reduction systems for evaluation contexts ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
(Show Context)
Various logicbased frameworks have been proposed for specifying the operational semantics of programming languages and concurrent systems, including inference systems in the styles advocated by Plotkin and by Kahn, Horn logic, equational specifications, reduction systems for evaluation contexts, rewriting logic, and tile logic. We consider
Algebraic Specifications, HigherOrder Types, and SetTheoretic Models
 In Proc. AMAST'98, volume 1548 of LNCS
, 1998
"... . In most algebraic specification frameworks, the type system is restricted to sorts, subsorts, and firstorder function types. This is in marked contrast to the socalled modeloriented frameworks, which provide higherorder types, interpreted settheoretically as Cartesian products, function s ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
. In most algebraic specification frameworks, the type system is restricted to sorts, subsorts, and firstorder function types. This is in marked contrast to the socalled modeloriented frameworks, which provide higherorder types, interpreted settheoretically as Cartesian products, function spaces, and powersets. This paper presents a simple framework for algebraic specifications with higherorder types and settheoretic models. It may be regarded as the basis for a Hornclause approximation to the Z framework, and has the advantage of being amenable to prototyping and automated reasoning. Standard settheoretic models are considered, and conditions are given for the existence of initial reducts of such models. Algebraic specifications for various settheoretic concepts are considered. 1 Introduction There are two main schools of thought regarding the formal specification of abstract data types: the modeloriented and the propertyoriented. In a modeloriented specifica...
A Reflective Framework for Formal Interoperability
, 1998
"... In practice we find ourselves in constant need of moving back and forth between different formalizations capturing different aspects of a system. For example, in a large software system we typically have very different requirements, such as functional correctness, performance, realtime behavior, co ..."
Abstract
 Add to MetaCart
In practice we find ourselves in constant need of moving back and forth between different formalizations capturing different aspects of a system. For example, in a large software system we typically have very different requirements, such as functional correctness, performance, realtime behavior, concurrency, security, and fault tolerance, which correspond to different views of the system and that are typically expressed in different formal systems. Often these requirements affect each other, but it can be extremely difficult to reason about their mutual interaction, and no tools exist to support such reasoning. This situation is very unsatisfactory, and presents one of the biggest obstacles to the use of formal methods in software engineering because, given the complexity of large software systems, it is a fact of life that no single perspective, no single formalization or level of abstraction suffices to represent a system and reason about its behavior. We need (meta)formal methods and tools to achieve Formal Interoperability, that is, the capacity to move in a mathematically rigorous way across the different formalizations of a system, and to use in a rigorously integrated way the different tools supporting these formalizations. We will develop new, formal interoperability methodologies and generic metatools that are expected to achieve dramatic advances in software technology and formal methods:
Mathematical and Engineering Foundations for Interoperability via Architecture
, 1998
"... Data Type Specification, in combination with modal logics for formalizing the process of building systems from interconnected components. This combination of logical and categorical techniques has also been applied to parallel program design languages in the style of UNITY [14] and IP [41], providin ..."
Abstract
 Add to MetaCart
Data Type Specification, in combination with modal logics for formalizing the process of building systems from interconnected components. This combination of logical and categorical techniques has also been applied to parallel program design languages in the style of UNITY [14] and IP [41], providing semantics for modularization techniques based on the notion of superposition. This has resulted in the development of a programming design language called Community [33]. Two formalisms that provide explicit support for object systems and can reason about their rewriting logic specifications have been recently developed. One is a version of the modal calculus proposed by Lechner [48, 49] for reasoning about objectoriented Maude specifications. Another is Denker's objectoriented distributed temporal logic DTL + [24, 22], that extends the DTL and D 1 distributed object temporal logics of Ehrich and Denker [30, 23, 29]. Lechner [48, 49] uses her version of the modal calculus to identif...
Specification and Proof in Membership Equational Logic1
"... Abstract: This paper is part of a longterm effort to increase expressiveness of algebraic specification languages while at the same time having a simple semantic foundation on which efficient execution by rewriting and powerful theoremproving tools can be based. In particular, our rewriting techni ..."
Abstract
 Add to MetaCart
Abstract: This paper is part of a longterm effort to increase expressiveness of algebraic specification languages while at the same time having a simple semantic foundation on which efficient execution by rewriting and powerful theoremproving tools can be based. In particular, our rewriting techniques provide semantic foundations for Maude's functional sublanguage, where they have been efficiently implemented. This effort started in the late seventies, led by the ADJ group, who promoted equational logic and universal algebra as the semantic basis of program specification languages. An important later milestone was the work around ordersorted algebras and the OBJ family of languages developed at SRIInternational in the eighties. This effort has been substantially advanced in the midnineties with the development of Maude, a language based on membership equational logic. Membership equational logic is quite simple, and yet quite powerful. Its atomic formulae are equations and sort membership assertions, and its sentences are Horn clauses. It extends in a conservative way both (a version of) ordersorted equational logic and partial algebra approaches, while Horn logic with equality can be very easily encoded.