1
Presented at SLE’2008 – Toulouse
(co-located with MODELS’2008)
J.E. Rivera1, E. Guerra2, J. de Lara2, A. Vallecillo3
1Marbella International University Centre (Spain)
2Autonomous University of Madrid (Spain)
3University of Málaga (Spain)
THE AUTHORS TODAY
THE PAPER IN A
NUTSHELL
Specification and analysis of the dynamic semantics of DSLs
• Rule-based specification (graph transformation)
• Translation into Maude (rewriting logic)
• Reachability analysis and model checking (graph patterns)
Combination of
• User friendly rule-based specifications at the front-end
• Powerful analysis at the back-end
Tool support
• AToM3+Maude
3
DSLs: SYNTAX
4
DSLs: SEMANTICS
5
LHS: pre-conditions (including attribute conditions)
RHS: post-conditions (including attribute computacions)
NAC: additional negative application conditions
PROPERTY
SPECIFICATION
Graph constraints
• A graph constraint is made of a set of graphs related through
morphisms
• Demands the existence or absence of a certain graph structure
in a model
6
Container Parts
p *
PartOverflow
O
ATTRIBUTE CONDITION:
O.nelems > O.capacity
There is a container with no
parts
There is a tray with
more elements than
its capacity
ANALYSIS: MAUDE
Equational and rewriting logic
A system is axiomatized by an equational theory describing its
states and a collection of rewrite rules
Meta-models, models, rules and patterns are translated into
Maude
7
ProductionSystem {
< ‘t1 : Tray | parts : empty,
next : ‘t3, prev : empty,
min : empty, mout : empty,
capacity : 4, nelems : 0 >
< ‘t3 : Tray | parts : empty,
next : empty, prev : ‘t2,
min : empty, mout : empty,
capacity : 4, nelems : 0 >
< ‘op : Operator | from : ‘t1, to : ‘t3 >
}
op
capacity = 4
nelems = 0
capacity = 4
nelems = 0
from to
ANALYSIS: MAUDE
Simulation: Maude specs can be executed
Reachability analysis
• Example: deadlock states where there is a container without parts
LTL model checking
• Safety, liveness properties
• Example: in all executions, a hammer is eventually stored
8
Container Parts
p *
search [10 ] initModel =>!
ProductionSystem {
< ‘co : Container | parts : empty, SFS >
OBJSET } .
reduce modelCheck(initModel, [](exist(‘hammer1) -> <> stored(‘hammer1)) .
result Bool: true
TOOL SUPPORT:
AToM3 + MAUDE
9
MAUDE
http://atom3.cs.mcgill.ca/
FURTHER
DEVELOPMENTS
10
E-Motions (Rivera&Vallecillo)
• Adding time to rules
• Eclipse plugin
• Analysis using MAUDE
AToMPM (Syriani&Vangheluwe)
• Web version of AToM3
• https://atompm.github.io
MetaDepth (de Lara&Guerra)
• Textual, multi-level modelling
• Epsilon languages
• http://metadepth.org
Juan.deLara@uam.es
@miso_uam
THANKS!
http://miso.es

SLE_MIP08

  • 1.
    1 Presented at SLE’2008– Toulouse (co-located with MODELS’2008)
  • 2.
    J.E. Rivera1, E.Guerra2, J. de Lara2, A. Vallecillo3 1Marbella International University Centre (Spain) 2Autonomous University of Madrid (Spain) 3University of Málaga (Spain) THE AUTHORS TODAY
  • 3.
    THE PAPER INA NUTSHELL Specification and analysis of the dynamic semantics of DSLs • Rule-based specification (graph transformation) • Translation into Maude (rewriting logic) • Reachability analysis and model checking (graph patterns) Combination of • User friendly rule-based specifications at the front-end • Powerful analysis at the back-end Tool support • AToM3+Maude 3
  • 4.
  • 5.
    DSLs: SEMANTICS 5 LHS: pre-conditions(including attribute conditions) RHS: post-conditions (including attribute computacions) NAC: additional negative application conditions
  • 6.
    PROPERTY SPECIFICATION Graph constraints • Agraph constraint is made of a set of graphs related through morphisms • Demands the existence or absence of a certain graph structure in a model 6 Container Parts p * PartOverflow O ATTRIBUTE CONDITION: O.nelems > O.capacity There is a container with no parts There is a tray with more elements than its capacity
  • 7.
    ANALYSIS: MAUDE Equational andrewriting logic A system is axiomatized by an equational theory describing its states and a collection of rewrite rules Meta-models, models, rules and patterns are translated into Maude 7 ProductionSystem { < ‘t1 : Tray | parts : empty, next : ‘t3, prev : empty, min : empty, mout : empty, capacity : 4, nelems : 0 > < ‘t3 : Tray | parts : empty, next : empty, prev : ‘t2, min : empty, mout : empty, capacity : 4, nelems : 0 > < ‘op : Operator | from : ‘t1, to : ‘t3 > } op capacity = 4 nelems = 0 capacity = 4 nelems = 0 from to
  • 8.
    ANALYSIS: MAUDE Simulation: Maudespecs can be executed Reachability analysis • Example: deadlock states where there is a container without parts LTL model checking • Safety, liveness properties • Example: in all executions, a hammer is eventually stored 8 Container Parts p * search [10 ] initModel =>! ProductionSystem { < ‘co : Container | parts : empty, SFS > OBJSET } . reduce modelCheck(initModel, [](exist(‘hammer1) -> <> stored(‘hammer1)) . result Bool: true
  • 9.
    TOOL SUPPORT: AToM3 +MAUDE 9 MAUDE http://atom3.cs.mcgill.ca/
  • 10.
    FURTHER DEVELOPMENTS 10 E-Motions (Rivera&Vallecillo) • Addingtime to rules • Eclipse plugin • Analysis using MAUDE AToMPM (Syriani&Vangheluwe) • Web version of AToM3 • https://atompm.github.io MetaDepth (de Lara&Guerra) • Textual, multi-level modelling • Epsilon languages • http://metadepth.org
  • 11.