TY - JOUR
T1 - The Maude strategy language
AU - Eker, Steven
AU - Martí-Oliet, Narciso
AU - Meseguer, José
AU - Rubio, Rubén
AU - Verdejo, Alberto
N1 - Publisher Copyright:
© 2023 The Author(s)
PY - 2023/8
Y1 - 2023/8
N2 - Rewriting logic is a natural and expressive framework for the specification of concurrent systems and logics. The Maude specification language provides an implementation of this formalism that allows executing, verifying, and analyzing the represented systems. These specifications declare their objects by means of terms and equations, and provide rewriting rules to represent potentially non-deterministic local transformations on the state. Sometimes a controlled application of these rules is required to reduce non-determinism, to capture global, goal-oriented or efficiency concerns, or to select specific executions for their analysis. That is what we call a strategy. In order to express them, respecting the separation of concerns principle, a Maude strategy language was proposed and developed. The first implementation of the strategy language was done in Maude itself using its reflective features. After ample experimentation, some more features have been added and, for greater efficiency, the strategy language has been implemented in C++ as an integral part of the Maude system. This paper describes the Maude strategy language along with its semantics, its implementation decisions, and several application examples from various fields.
AB - Rewriting logic is a natural and expressive framework for the specification of concurrent systems and logics. The Maude specification language provides an implementation of this formalism that allows executing, verifying, and analyzing the represented systems. These specifications declare their objects by means of terms and equations, and provide rewriting rules to represent potentially non-deterministic local transformations on the state. Sometimes a controlled application of these rules is required to reduce non-determinism, to capture global, goal-oriented or efficiency concerns, or to select specific executions for their analysis. That is what we call a strategy. In order to express them, respecting the separation of concerns principle, a Maude strategy language was proposed and developed. The first implementation of the strategy language was done in Maude itself using its reflective features. After ample experimentation, some more features have been added and, for greater efficiency, the strategy language has been implemented in C++ as an integral part of the Maude system. This paper describes the Maude strategy language along with its semantics, its implementation decisions, and several application examples from various fields.
KW - Formal specification
KW - Maude
KW - Rewriting logic
KW - Rewriting strategies
UR - http://www.scopus.com/inward/record.url?scp=85162005208&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85162005208&partnerID=8YFLogxK
U2 - 10.1016/j.jlamp.2023.100887
DO - 10.1016/j.jlamp.2023.100887
M3 - Article
AN - SCOPUS:85162005208
SN - 2352-2208
VL - 134
JO - Journal of Logical and Algebraic Methods in Programming
JF - Journal of Logical and Algebraic Methods in Programming
M1 - 100887
ER -