SMILE Project - PowerPoint PPT Presentation

1 / 30
About This Presentation
Title:

SMILE Project

Description:

expressiveness and flexibility by using ASMs. Approval by ITU-T in November 2000 ... SDL-to-AsmL compiler built, used to check semantics ... – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 31
Provided by: lars95
Category:

less

Transcript and Presenter's Notes

Title: SMILE Project


1
SMILE Project
  • Prof. Andreas Prinz
  • February 2004

2
Contents
  • History SDL Formal Semantics
  • Definition
  • Implementation
  • Abstract State Machines
  • EU Project SMILE
  • HIA Project SMILE

3
Static Semantics Overview
Formalisation
Language part
Overview of the Formal Semantics
4
Dynamic Semantics Overview
Overview of the Formal Semantics
5
Overview of the Technology
Z.100 text
Z.100.F text
Tooling for the Semantics
6
Tooling for the Static Part
Concrete Syntax
Abstract Syntax
Tooling for the Semantics
7
Tooling for the Dynamic Part
kimwitu
AsmL
Tooling for the Semantics
8
Status and Outlook
  • Formal semantics completed
  • design objectives achieved
  • expressiveness and flexibility by using ASMs
  • Approval by ITU-T in November 2000
  • real-life industrial setting
  • SDL-to-AsmL compiler built, used to check
    semantics
  • automatic generation of reference implementations
  • TODO better runtime support
  • Real-time extensions expected in the near future
  • maximum and minimum reaction delays (bounded
    response, bounded omission)
  • performance aspects

Final Remarks
9
Abstract State Machines
  • general
  • state transitions
  • introduced by Gurevich
  • based on mathematics
  • states
  • transitions
  • programs
  • concurrency/time

Y. Gurevich. Evolving Algebra 1993 Lipari
GuideIn E. Börger, editor, Specification and
Validation Methods Oxford University Press
1995 Y. Gurevich.ASM Guide 97CSE Technical
Report, University of Michigan-Ann Arbor, 1997
ASM Introduction
10
Abstract State Machines
  • general
  • states
  • algebras
  • sets,functions
  • domains
  • reserve elements
  • transitions
  • programs
  • concurrency/time

state element domain function boolean function
vocabulary 0-ary function 1-ary
predicate function name predicate name
ASM Introduction
11
Abstract State Machines
  • general
  • states
  • transitions
  • locations, updates
  • firing of updates
  • runs
  • programs
  • concurrency/time

Jill.Account 1000000 Jack.Account 0
Account(Jill) 1000000 Account(Jack) 0
ASM Introduction
12
Abstract State Machines
  • general
  • states
  • transitions
  • programs
  • concurrency/time

know(s) know(s)SDL
ASM Introduction
13
Abstract State Machines
  • general
  • states
  • transitions
  • programs
  • concurrency/time
  • agents
  • Program, Self
  • partially ordered runs
  • now

ag2
ag1
M1
M2
ag3
M3
ag4
Mod(agX)
S
View(agX,S)
ASM Introduction
14
SMILE EU Project
  • Semantic Middleware for System Modelling
    Languages
  • combine UML, SDL, SystemC
  • common semantic middleware
  • hierarchical language definitions
  • combined language application
  • common exchange format
  • public domain tools for modelling

15
HIA SMILE Project
  • Semantic Meta-model-based Integrated Language
    Environment
  • MOF, UML, SDL, OCL,
  • domain-specific, little languages
  • hierarchical definition
  • combined application
  • semantic integration
  • new languages / extensions
  • public domain tools

16
SMILE Overview
Abstract Syntax Meta-model MOF-structure
17
SMILE Project
  • Prof. Andreas Prinz
  • February 2004

18
Concrete and Abstract Syntax CS
state s input a output b,c
nextstate s endstate
ltoutputgt output ltoutput bodygt ltoutput
bodygt ltsignal identifiergt , ltsignal
identifiergt ltsignal identifiergt
ltidentifiergt
Static Semantics
19
Concrete and Abstract Syntax AS1
State-node(Name(s), Input-node(Identifier(a),
Transition( Output-node(Identifier(b)),
Output-node(Identifier(c)),
Nextstate-node(Name(s)) ) ) )
Output-node Signal-identifier Signal-identifier
Identifier
Static Semantics
20
Concrete and Abstract Syntax AS0
ltoutputgt output ltoutput bodygt ltoutput
bodygt ltsignal identifiergt , ltsignal
identifiergt ltsignal identifiergt
ltidentifiergt
ltoutputgt ltoutput bodygt ltoutput bodygt
ltsignal identifiergt ltsignal identifiergt
ltidentifiergt
Static Semantics
21
Static Semantics Transformations
If several ltsignal identifiergts are specified in
an ltoutput bodygt, this is derived syntax for
specifying a sequence of ltoutputgts in the same
order as specified in the original ltoutput bodygt.
Static Semantics
22
Static Semantics Conditions
The ltsignal identifiergt in an ltoutput bodygt must
denote a ltsignal definitiongt.
Static Semantics
23
Static Semantics Mapping
ltoutputgt(ltoutput bodygt(lt id gt)) gt Output-node(Map
ping(id))
Static Semantics
24
SAM Signal Flow
  • LINK-PROGRAM

if Self.from.queue ? empty then let si
Self.from.queue.head in if Applicable(si)
then DELETE(si,Self.from) INSERT(si,
nowSelf.delay, Self.to) where Applicable(si)
def si.signalType ? Self.with
? Compatible(Self.to, si.signalType, ...)
Dynamic Semantics
25
SAM Agents
Dynamic Semantics
26
SAM Primitives
  • PRIMITVE def LABEL ? ACTION
  • ACTION def OUTPUT ? CALL ? SKIP ? ENTERSTATENODE
    ? LEAVESTATENODE ? ...
  • OUTPUT def SIGNAL ? CONTINUELABEL
  • CALL def PROCEDURE ? VALUELABEL ? CONTINUELABEL
  • SKIP def LABEL
  • ENTERSTATENODE def STATENAME ? ENTRYNAME ? LABEL
  • LEAVESTATENODE def STATENAME ? EXITNAME ? LABEL

Dynamic Semantics
27
Compilation
  • l1 LEAVESTATENODE(s) gt l2
  • l2 OUTPUT(b) gt l3
  • l3 OUTPUT(c) gt l4
  • l4 ENTERSTATENODE(s)

state s input a output b,c nextstate
s endstate
Dynamic Semantics
28
Initialisation (structure)
  • INIT-AGENT-PROGRAM

if mode(Self)initial then mode(Self)
starting CREATEVARIABLES(Self.ref.s-Variable-def
inition) do forall aSelf.ref.s-Agent-set
extend Agent with ag ref(ag) a
mode(ag) initial Program(ag)
INIT_AGENT_PROGRAM else CREATECHANNELS(Self.ref.
s-Channel-definition) Program(Self)
EXECUTE_PROGRAM
Dynamic Semantics
29
Transition Selection
  • EXECECUTE-PROGRAM

if Self.agentMode selectingTransition then
SELECTTRANSITION if Self.agentMode
firingTransition then FIRETRANSITION
Dynamic Semantics
30
Transition Firing
FIRETRANSITION ? choose b b ? BEHAVIOUR ?
b.s-LABEL Self.currentLabel
EVALUATE (b.s-PRIMITIVE) EVALUATE(a ACTION) ?
if a ? TASK then EVALTASK(a) if a ? OUTPUT then
EVALOUTPUT(a) if a ? DECISION then
EVALDECISION(a) if a ? CALL then EVALCALL(a)
Dynamic Semantics
Write a Comment
User Comments (0)
About PowerShow.com