1. maude
Alberto Lluch
ASCENS General Meeting
Pisa, March 2-4, 2011
1
alberto.lluch@imtlucca.it
2. what is maude?
“A high-level, declarative language
that supports both equational
and rewriting logic computation”
– maude.cs.uiuc.edu
2
alberto.lluch@imtlucca.it
9. semantic
framework
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
9
alberto.lluch@imtlucca.it
10. semantic
framework
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
10
alberto.lluch@imtlucca.it
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
12
alberto.lluch@imtlucca.it
13. reflection
mod AC is
ANALYZE(C) PLAN(C)
crc(C); add(r1,C);
C |= f; del(r2,C);
... ...
mod C is
MEASURE(C,I) EXECUTE(C)
...
read/get(); metaRewrite(C);
endm
endm
13
alberto.lluch@imtlucca.it
14. reflection
me me me me
14
alberto.lluch@imtlucca.it
16. ? ?
x me y
... z me u
16
alberto.lluch@imtlucca.it
17. unification
x me y ≡A z me
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]
17
alberto.lluch@imtlucca.it
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.
19
alberto.lluch@imtlucca.it
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.”
23
alberto.lluch@imtlucca.it