maude .:° ascens 2011
DESCRIPTION
A brief talk about some features of Maude that might be interesting for the ASCENS project on autonomic component ensembles.TRANSCRIPT
2
what is maude?
“A high-level, declarative languagethat supports both equationaland rewriting logic computation”
– maude.cs.uiuc.edu
5
rule-based
mod m(x) is
import m1, m2,...
sort s1, s2,...
ops f, g,...
eq f(...) = ...
rl l => r
endm
9
semantic
models of concurrent computation: equational programming, lambda calculi, Petri nets, process algebras (CCS and pi-calculus), actors, operational semantics of languages (via K, SOS): Java, C, Python, Haskell, agent
languages, active networks languages, hardware description languages, logical framework and metatool: linear logic, translations between theorem provers, type systems, open calculus of constructions, tile logic distributed architectures and components: UML, OCL, MOF, Service architectures and
middlewares, open distributed processing, models, specification and analysis of communication protocols: active networks, wireless sensor
networks, firefire leader election protocol, modeling and analysis of security protocols: cryptographic protocol specification language CAPSL, MSR, security specification formalism, Maude-NPA, real-time, biological,
probabilistic systems: real-time maude, pathway logic, PMaude
framework
10
semantic
models of concurrent computation: equational programming, lambda calculi, Petri nets, process algebras (CCS and pi-calculus), actors, operational semantics of languages (via K, SOS): Java, C, Python, Haskell, agent
languages, active networks languages, hardware description languages, logical framework and metatool: linear logic, translations between theorem provers, type systems, open calculus of constructions, tile logic distributed architectures and components: UML, OCL, MOF, Service architectures and
middlewares, open distributed processing, models, specification and analysis of communication protocols: active networks, wireless sensor
networks, firefire leader election protocol, modeling and analysis of security protocols: cryptographic protocol specification language CAPSL, MSR, security specification formalism, Maude-NPA, real-time, biological,
probabilistic systems: real-time maude, pathway logic, PMaude
framework
12
reflection
META-LEVEL is a module where
– modules, terms, rules, equations, sorts, etc. are data.
– matching, rule application, rewriting, etc. are functions.
META-LEVEL is a module so...
it can be treated as data again, and again...
this gives rise to a tower of reflection.
Metaprogramming applications
– execution layers: ordinary behaviour, reconfiguration, adaptation
– transformation of modules
– analysis of modules
13
reflection
mod AC is
endm
EXECUTE(C)
metaRewrite(C);
PLAN(C)
add(r1,C);
del(r2,C);
...
ANALYZE(C)
crc(C);
C |= f;
...
mod C is
...
endm
MEASURE(C,I)
read/get();
17
unification
≡A
Useful for... Check confluence of equational specifications (via CPA).
Model checking ∞-state systems via narrowing.
Deductive verification
every rule preserves I
I is invariant
Reason about open systems
– e.g. exploiting semantic frameworks for open processes [Bruni@TCS'07]
x me y z me
19
tools
Available (tool) checkers for confluence, termination, sufficient completeness, coherence, reachability, invariants, temporal logic properties, etc.
Style-Preserving Architectural Reconfigurations (ADR) [Bruni,Montanari,Lluch]– Correct-by-construction reconfigurations;
– Reconfigurations coordinated by the (hierarchical) structure.
Hierarchical Graphs for Processes [Bruni,Gadducci,Lluch,Montanari]
– From processes to graphs and back via graph algebras.
Semantics of long-running transactions (SAGAS) [Bruni,Kersten,Montanari]
– Use of reflection e.g. to install compensations dynamically;
– Maude to simulate and analyse transactional specifications.
Modal logics for graphs [Corradini,Gadducci,Lluch,Vandin]
– Graph rewriting-like term rewrite rules;
– Temporal graph logic to reason about spatial and temporal properties.
21
interoperability
MOMENT Project
– Maude simple GUI (textual editor);
– Maude Daemon: Java encapsulation to launch/stop Maude processes.
MOMENT2
– MOF/OCL/QVT semantics (executable/verifiable);
– MOMENT-MT (model transformations);
– MOMENT-AADL (real-time ADL, real-time Maude).
Graphical EMF-based editors (under development) [Bruni,Lluch]
– Model-driven methodology to create ad-hoc Maude GUIs;
– Generic Maude graphical editor;
– Object-oriented graphical editor.
23
maude role
None
“this thing is completely useless for me”A WP2 model “debugger”
“check model definitions and results” An interpreter/analyser for some SCEL dialect
“double-check the semantics to discover ambiguities”An inspiration for models
“reflective knowledge, stochastic unification, etc.”