Results 1 - 10
of
23
Maude: Specification and Programming in Rewriting Logic
, 2001
"... Maude is a high-level language and a high-performance 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 157 (61 self)
- Add to MetaCart
Maude is a high-level language and a high-performance 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 user-definable 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 object-oriented 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.
Protocol Specification and Analysis in Maude
- Proc. of Workshop on Formal Methods and Security Protocols
, 1998
"... This paper proposes rewriting logic as an executable specification formalism for security protocols that offers some novel advantages. A messagepassing object-oriented approach seems particularly natural for communication protocols and can be naturally formalized in rewriting logic. This is illustra ..."
Abstract
-
Cited by 44 (11 self)
- Add to MetaCart
This paper proposes rewriting logic as an executable specification formalism for security protocols that offers some novel advantages. A messagepassing object-oriented approach seems particularly natural for communication protocols and can be naturally formalized in rewriting logic. This is illustrated by using the Needham-Schroeder Public-Key protocol as a running example. The rewriting logic-based Maude interpreter [CELM96] offers also some useful advantages. Efficient executability allows prototyping and debugging of protocol specifications. But since a concurrent system can have many different behaviors, to properly analyze the system it becomes important to explore not just the single execution provided by some default strategy, but many other executions. Maude supports user-defined execution strategies, including strategies such as breadth-first-search that can exhaustively explore all the executions of a system. This is very helpful in uncovering security flaws under unforeseen ...
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.
Modular rewriting semantics of programming languages
- In Proceedings of the 10th International Conference, AMAST’04
, 2004
"... ..."
Verifying a Simple Pipelined Microprocessor Using Maude
- Maude”, Lecture Notes in Computer Science
, 2000
"... We consider the verification of a simple pipelined microprocessor in Maude, by implementing an equational theoretical model of systems. Maude is an equationally-based language, with an efficient term rewriting implementation, and effctive meta-level tools. Microprocessors and other systems are model ..."
Abstract
-
Cited by 15 (1 self)
- Add to MetaCart
We consider the verification of a simple pipelined microprocessor in Maude, by implementing an equational theoretical model of systems. Maude is an equationally-based language, with an efficient term rewriting implementation, and effctive meta-level tools. Microprocessors and other systems are modelled as iterated maps operating in time over some state-set, and are related by means of data and abstraction maps, and correctness is reduced to state exploration by the choice of an appropriate initialisation function, ensuring/enforcing consistency of the initial state.
Abstract Diagnosis of Functional Programs
- LOGIC BASED PROGRAM SYNTHESIS AND TRANSFORMATION – 12TH INTERNATIONAL WORKSHOP, LOPSTR 2002, REVISED SELECTED PAPERS, VOLUME 2664 OF LECTURE NOTES IN COMPUTER SCIENCE
, 2002
"... We present a generic scheme for the declarative debugging of functional programs modeled as term rewriting systems. We associate to our programs a semantics based on a (continuous) immediate consequence operator, T R, which models the (values/normal forms) semantics of R. Then, we develop an effec ..."
Abstract
-
Cited by 14 (6 self)
- Add to MetaCart
We present a generic scheme for the declarative debugging of functional programs modeled as term rewriting systems. We associate to our programs a semantics based on a (continuous) immediate consequence operator, T R, which models the (values/normal forms) semantics of R. Then, we develop an effective debugging methodology which is based on abstract interpretation: by approximating the intended specification of the semantics of R we derive a finitely terminating bottom-up diagnosis method, which can be used statically. Our debugging framework does not require the user to either provide error symptoms in advance or answer questions concerning program correctness. We have made available a prototypical implementation in Haskell and have tested it on some non trivial examples.
Formal Specification and Analysis of Active Networks and Communication Protocols: The Maude Experience
, 2000
"... ..."
Specification and Formal Analysis of a PLAN Algorithm in Maude
- PROCEEDINGS INTERNATIONAL WORKSHOP ON DISTRIBUTED SYSTEM VALIDATION AND VERIFICATION
, 1999
"... Rewriting logic can be used as a semantic framework to model next-generation networks and algorithms such as those of active networks with greater flexibility than standard model checking approaches. Using reflection, a wide range of formal analyses can be performed on a given specification by speci ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
Rewriting logic can be used as a semantic framework to model next-generation networks and algorithms such as those of active networks with greater flexibility than standard model checking approaches. Using reflection, a wide range of formal analyses can be performed on a given specification by specifying an analysis algorithm as a metalevel theory that executes the specification as an object-level entity. We illustrate how the reflective rewriting logic language Maude can be used for this kind of formal specification and analysis by means of an active network algorithm written in the PLAN language, whose correct behavior from a given initial state is formally analyzed using the proposed methods.
Formal JVM code analysis in JavaFAN
- Proc. AMAST’04, Springer LNCS
, 2004
"... Abstract. The JavaFAN uses a Maude rewriting logic specification of the JVM semantics as the basis of a software analysis tool with competitive performance. JavaFAN supports formal analysis of concurrent JVM programs by means of symbolic simulation, breadth-first search, and LTL model checking. We d ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
Abstract. The JavaFAN uses a Maude rewriting logic specification of the JVM semantics as the basis of a software analysis tool with competitive performance. JavaFAN supports formal analysis of concurrent JVM programs by means of symbolic simulation, breadth-first search, and LTL model checking. We discuss JavaFAN’s executable formal specification of the JVM, illustrate is formal analysis capabilities using several case studies, and compare its performance with similar Java analysis tools. 1

