23
1 Alberto Lluch ASCENS General Meeting Pisa, March 2-4, 2011 maude [email protected]

Maude .:° ASCENS 2011

Embed Size (px)

DESCRIPTION

A brief talk about some features of Maude that might be interesting for the ASCENS project on autonomic component ensembles.

Citation preview

Page 1: Maude .:° ASCENS 2011

1

Alberto Lluch

ASCENS General Meeting

Pisa, March 2-4, 2011

maude

[email protected]

Page 2: Maude .:° ASCENS 2011

2

what is maude?

[email protected]

“A high-level, declarative languagethat supports both equationaland rewriting logic computation”

– maude.cs.uiuc.edu

Page 3: Maude .:° ASCENS 2011

3

rule-based

[email protected]

interoperable

too l

sunificationreflective

semantic framework

Page 4: Maude .:° ASCENS 2011

4

rule-based

[email protected]

interoperable

too l

sunificationreflective

semantic framework

Page 5: Maude .:° ASCENS 2011

5

rule-based

[email protected]

mod m(x) is

import m1, m2,...

sort s1, s2,...

ops f, g,...

eq f(...) = ...

rl l => r

endm

Page 6: Maude .:° ASCENS 2011

6

me

rule-based

[email protected]

Page 7: Maude .:° ASCENS 2011

7

me me

me me

me me

rule-based

[email protected]

Page 8: Maude .:° ASCENS 2011

8

rule-based

[email protected]

interoperable

too l

sunificationreflective

semantic framework

Page 9: Maude .:° ASCENS 2011

9

semantic

[email protected]

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

Page 10: Maude .:° ASCENS 2011

10

semantic

[email protected]

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

Page 11: Maude .:° ASCENS 2011

11

rule-based

[email protected]

interoperable

too l

sunificationreflective

semantic framework

Page 12: Maude .:° ASCENS 2011

12

reflection

[email protected]

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

Page 13: Maude .:° ASCENS 2011

13

reflection

[email protected]

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();

Page 14: Maude .:° ASCENS 2011

14

me me me me

reflection

[email protected]

Page 15: Maude .:° ASCENS 2011

15

rule-based

[email protected]

interoperable

too l

sunificationreflective

semantic framework

Page 16: Maude .:° ASCENS 2011

16

x me y mez u? ?

...

[email protected]

Page 17: Maude .:° ASCENS 2011

17

unification

[email protected]

≡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

Page 18: Maude .:° ASCENS 2011

18

rule-based

[email protected]

interoperable

too l

sunificationreflective

semantic framework

Page 19: Maude .:° ASCENS 2011

19

tools

[email protected]

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.

Page 20: Maude .:° ASCENS 2011

20

rule-based

[email protected]

interoperable

too l

sunificationreflective

semantic framework

Page 21: Maude .:° ASCENS 2011

21

interoperability

[email protected]

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.

Page 22: Maude .:° ASCENS 2011

22

SO WHAT?

[email protected]

Page 23: Maude .:° ASCENS 2011

23

maude role

[email protected]

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.”