SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
A	Formal	Framework	for	Prototyping	
Executable	Semantics	in	ATL
Artur	Boronat
11th International	Conference	on	Model	Transformation
25-26	June	2018,	Toulouse,	France
Model-based	Specification:
Concurrent	Append	Problem
class Cell {
Cell next;
int val;
void append(int x) {
if (x == this.val)
return;
if (this.next == null) {
this.next = new Cell ();
this.next.val = x;
} else
this.next.append(x);
}
}
Adapted	from	
[Rensink et	al.,	ICGT	2004]
0 append(1) 0 1
0 append(1);	 append(2) 0 1 2
0 append(1)	 ||	append(1) 0 1
0 append(1)	 ||	append(2)
0 1 2
0 2 1
or
MODEL	REPRESENTATION
0 append(0) 0
given when then
SCENARIOS
PROPERTIES
1. Uniqueness	(no	sharing)
2. Caller	and	callee cannot	
have	the	value	at	the	same	
time	(isolation)
Problem
Current
Possibilities
System
spec
Property
Spec DiscussionTool
ATL	in	industry	and	academia
• Offloads	responsibilities	from	users	
• No	need	to	prove	that	transformations	are	deterministic
• Community:	industry/academy
• Tool	ecosystem
• Several	transformation	engines
• ATL2010
• EMFTVM
• Gremlin-ATL
• Eclipse	IDE	plugin:	type	checking,	code	completion
• AnATLyzer:	static	analysis
Problem
Current
Possibilities
System
spec
Property
Spec DiscussionTool
ATL	Execution	Modes
• Out-place	MT
• Normal	mode	(batch)
• Incremental	mode
• Incremental	ATL:	live	trafo,	forward	propagation	[Tisi10]
• ReactiveATL:	live	trafo,	reacts	to	external	events,	lazy	[Martínez17]
• In-place	MT:	
• Refining	mode	ATL2006:	copy	strategy
• Refining	mode	ATL2010	[Tisi11]:	
• Generate	updates
• Reorder	them	to	preserve	ATL	properties
Problem
Current
Possibilities
System
spec
Property
Spec DiscussionTool
Problem	Model:	EMF	and	ATL	(refining)
DATA	MODEL
REPRESENTATION
BEHAVIOUR	MODEL
REPRESENTATION
Append Next
Found Return
rule Append {
from
a1 : append!Append (
a1.active and
a1.this.next. oclIsUndefined () and
a1.this.val <> a1.x
)
to
a1__ref : append!Append (
return <- true ,
x <- ’’
),
c2 : append!Cell (
val <- a1.x,
previous <- a1.this
)
}
matched	rules source	pattern	element
filter	condition
target
pattern
element
binding	expression:		OCL
Problem
Current
Possibilities
System
spec
Property
Spec DiscussionTool
Drawbacks	of	ATL	(refining)
Append(1);	
Append(2)
rule Append {
from
a1 : append!Append (
a1.active and
a1.this.next. oclIsUndefined () and
a1.this.val <> a1.x
)
to
a1__ref : append!Append (
return <- true ,
x <- ’’
),
incorrect
incomplete
Problem
Current
Possibilities
System
spec
Property
Spec DiscussionTool
Drawbacks	of	ATL	for	System	Verification
• Specification
• Underapproximation:	subset	of	deterministic	
systems
• No	non-determinism	and	no	concurrency
• Verification
• Soundness:	application	of	rules	is	amalgamated	
when	there	are	sequential	conflicts	between	
these	rules
• Completeness:	finding	no	counterexample	is	no	
guarantee	of	soundness
Problem
Current
Possibilities
System
spec
Property
Spec DiscussionTool
ATL	as	System	Specification	Language
• Append
rule Append {
from a1 : append!Append (
a1.active and a1.this.val <> a1.x
and a1.this.next. oclIsUndefined ()
) using {
c1 : append!Cell = a1.this;
} to a1__ref : append!Append (
x <- ’’,
active <- false ,
return <- true
),
c2 : append!Cell (
val <- a1.x
),
c1__ref : append!Cell (
next <- c2
)
}
Append(2)
Problem
Current
Possibilities
System
spec
Property
Spec DiscussionTool
Several	source	
elements
update
ATL	as	System	Spec.	Language
• Next
rule Next {
from a1 : append!Append (
a1.active=true and a1.x <> a1.this.val
and a1.callee. oclIsUndefined ()
) using {
c : append!Cell = a1.this.next;
} to a1__ref : append!Append (
active <- false ,
x <- ’’,
callee <- a2
),
a2 : append!Append (
active <- true ,
x <- a1.x,
this <- c
)
}
Next(1)
Problem
Current
Possibilities
System
spec
Property
Spec DiscussionTool
ATL	as	System	Spec.	
• Found
rule Found {
from a1 : append!Append (
a1.active and a1.x = a1.this.val
) to a1__ref : append!Append (
x <- ’’,
active <- false ,
return <- true
)
} Found(5)
Problem
Current
Possibilities
System
spec
Property
Spec DiscussionTool
ATL	as	System	Spec.
• Return
rule Return {
from a1 : append!Append (
a1.return = true and
not(a1.caller. oclIsUndefined ())
and a1.callee. oclIsUndefined ()
) using {
caller : append!Append = a1.caller;
} to caller__ref : append!Append (
return <- true ,
callee__unset <- a1
)
}
Return(5)
Problem
Current
Possibilities
System
spec
Property
Spec DiscussionTool
removing	reference
FMA-ATL:	Scheduling
• FMA-ATL	[Boronat17]:	out-place	ATL	trafos
• Scheduler	for	rules:	matching	up-front	
• Interpreter	for	rule	actions,	based	on	FMA
• Maude	implementation
• Main	modification:
traceGlobal = TG1
traceLocal = TL1
ruleStore = RS
helperStore = HS
matchPool = MP1
domains = DS1
rtClasses = RTC
mode = in-place
3 : AtlMatchingConfig
traceGlobal = TG2
traceLocal = TL2
ruleStore = RS
helperStore = HS
matchPool = MP2
domains = DS2
rtClasses = RTC
3 : AtlMatchingConfig
traceGlobal = TG1
traceLocal = TL1
ruleStore = RS
helperStore = HS
domains = DS1
rtClasses = RTC
: AtlConfig
rule = RN
match = V |-> O
: Match
match
model = OS1
loc = LOC1
1 : Domain
queryDomain
traceGlobal = TG2
traceLocal = TL2
domains = DS2
: AtlFinalConfig
E-Schedule-InPlace
+ATL
)
when IS=evalOcl( CT . allInstances() -> select( V | FC ) -> asSequence(), OS1, LOC1) / O in IS /
name = RN
var = V
varType = C
filter = FC
2 : AtlRule
ruleStore
name = DN1
model = OS1
loc = LOC1
1 : Domain
domains
name = DN1
model = OS1
loc = LOC1
2 : Domain
domains
name = RN
var = V
varType = C
filter = FC
2 : AtlRule
ruleStore
traceGlobal : Map<Tuple(source:Oid,var:ValExpr),Tuple(rule:ValExpr,target:Oid)>
traceLocal : Map<Tuple(source:Oid,var:ValExpr),Tuple(rule:ValExpr,target:Oid)>
rtClasses: String [0..*] {set}
mode : AtlMode
stmt : FmaStmt
AtlMatchingConfigAtlMatchingFinal
Config
self.matchPool.isEmpty()
AtlConfig
AtlFinalConfig
self.match.oclIsUndefined()
atlStmt : AtlStmt
rule : ValueExpr
match : Map<VarExpr,ValueExpr>
Match
*matchPool match0..1
AtlDomainConfig
AtlDomainFinalConfig
self.actions.isEmpty()
name : VarExpr
new : Map<QualifiedCid,Oid>
model : ObjectSet
loc : Map<Oid,Location>*
domains
Env
1
env
Problem
Current
Possibilities
System
spec
Property
Spec DiscussionTool
Verification
Append(2) Next(1) Found(5) Return(5)
Problem
Current
Possibilities
System
spec
Property
Spec DiscussionTool
• Model	transformation	as	simulation
• Verification
• Branching	structure	is	generated	by	Maude
• Two	techniques
• model	checking	of	LTL	properties,	assuming	a	finite	state	space
• (bounded)	model	checking	of	state	properties	(invariants)
• Model	checking	of	LTL	properties
ATL	as	Property	Specification	Language
AtlMatchingConfig name : DN
model : OS
loc : LOC
Domain
domains
such that evalOcl(not B, OS, LOC) = true .
search initialConfig =>*
Problem
Current
Possibilities
System
spec
Property
Spec DiscussionTool
• Model	checking	of	invariants
initial	state
FMA-ATL	Architecture
Problem
Current
Possibilities
System
spec
Property
Spec DiscussionTool
spec	
rules
prop.
spec
EMF	model command:
• simulation
• invariant	mc
• LTL	mc
FMA-ATL	interpreter	(Maude	back	end)
EMF2Maude	transpiler
ATL	parser
AnATLyzer
ATL2FMA-ATL	transpiler
FMA-ATL	API
JVM	front	end
Related	Work
Problem
Current
Possibilities
System
spec
Property
Spec DiscussionTool
A	Formal	Framework	for	Prototyping	Executable	
Semantics	in	ATL.	Artur	Boronat.
• ATL	for	system	
specification	and	
verification
• Identifying	drawbacks	of	
current	implementations
• Reuse	of	front-end	ATL	
ecosystem	for	system	
specification
• Proof-of-concept	tool	
atop	FMA-ATL
Ideas?

Contenu connexe

Tendances

Stacks and queue
Stacks and queueStacks and queue
Stacks and queue
Amit Vats
 
03 stacks and_queues_using_arrays
03 stacks and_queues_using_arrays03 stacks and_queues_using_arrays
03 stacks and_queues_using_arrays
tameemyousaf
 
Stack Data Structure & It's Application
Stack Data Structure & It's Application Stack Data Structure & It's Application
Stack Data Structure & It's Application
Tech_MX
 
Algorithm: priority queue
Algorithm: priority queueAlgorithm: priority queue
Algorithm: priority queue
Tareq Hasan
 
Reverse Engineering automation
Reverse Engineering automationReverse Engineering automation
Reverse Engineering automation
Positive Hack Days
 
computer notes - Data Structures - 9
computer notes - Data Structures - 9computer notes - Data Structures - 9
computer notes - Data Structures - 9
ecomputernotes
 

Tendances (20)

stacks and queues for public
stacks and queues for publicstacks and queues for public
stacks and queues for public
 
Introduction to functional programming using Ocaml
Introduction to functional programming using OcamlIntroduction to functional programming using Ocaml
Introduction to functional programming using Ocaml
 
Priority queues
Priority queuesPriority queues
Priority queues
 
Queues in C++
Queues in C++Queues in C++
Queues in C++
 
Stacks and queue
Stacks and queueStacks and queue
Stacks and queue
 
Queue
QueueQueue
Queue
 
A taste of Functional Programming
A taste of Functional ProgrammingA taste of Functional Programming
A taste of Functional Programming
 
03 stacks and_queues_using_arrays
03 stacks and_queues_using_arrays03 stacks and_queues_using_arrays
03 stacks and_queues_using_arrays
 
stack and queue array implementation in java.
stack and queue array implementation in java.stack and queue array implementation in java.
stack and queue array implementation in java.
 
Stack Data Structure & It's Application
Stack Data Structure & It's Application Stack Data Structure & It's Application
Stack Data Structure & It's Application
 
Stacks in c++
Stacks in c++Stacks in c++
Stacks in c++
 
Application of Stack - Yadraj Meena
Application of Stack - Yadraj MeenaApplication of Stack - Yadraj Meena
Application of Stack - Yadraj Meena
 
Algorithm: priority queue
Algorithm: priority queueAlgorithm: priority queue
Algorithm: priority queue
 
5 chapter3 list_stackqueuepart2
5 chapter3 list_stackqueuepart25 chapter3 list_stackqueuepart2
5 chapter3 list_stackqueuepart2
 
Reverse Engineering automation
Reverse Engineering automationReverse Engineering automation
Reverse Engineering automation
 
stacks and queues
stacks and queuesstacks and queues
stacks and queues
 
stack presentation
stack presentationstack presentation
stack presentation
 
Stack and its Applications : Data Structures ADT
Stack and its Applications : Data Structures ADTStack and its Applications : Data Structures ADT
Stack and its Applications : Data Structures ADT
 
Unit 3 stack
Unit   3 stackUnit   3 stack
Unit 3 stack
 
computer notes - Data Structures - 9
computer notes - Data Structures - 9computer notes - Data Structures - 9
computer notes - Data Structures - 9
 

Similaire à A Formal Framework for Prototyping Executable Semantics in ATL

Generating Automated and Online Test Oracles for Simulink Models with Continu...
Generating Automated and Online Test Oracles for Simulink Models with Continu...Generating Automated and Online Test Oracles for Simulink Models with Continu...
Generating Automated and Online Test Oracles for Simulink Models with Continu...
Lionel Briand
 
Optimizing Tcl Bytecode
Optimizing Tcl BytecodeOptimizing Tcl Bytecode
Optimizing Tcl Bytecode
Donal Fellows
 

Similaire à A Formal Framework for Prototyping Executable Semantics in ATL (20)

KNL3353_Control_System_Engineering_Lectu.ppt
KNL3353_Control_System_Engineering_Lectu.pptKNL3353_Control_System_Engineering_Lectu.ppt
KNL3353_Control_System_Engineering_Lectu.ppt
 
The Road Toward Dependable AI Based Systems
The Road Toward Dependable AI Based SystemsThe Road Toward Dependable AI Based Systems
The Road Toward Dependable AI Based Systems
 
New Functional Features of Java 8
New Functional Features of Java 8New Functional Features of Java 8
New Functional Features of Java 8
 
STL Algorithms In Action
STL Algorithms In ActionSTL Algorithms In Action
STL Algorithms In Action
 
Advanced Digital Design With The Verilog HDL
Advanced Digital Design With The Verilog HDLAdvanced Digital Design With The Verilog HDL
Advanced Digital Design With The Verilog HDL
 
Javascript.ppt
Javascript.pptJavascript.ppt
Javascript.ppt
 
Industrial plant optimization in reduced dimensional spaces
Industrial plant optimization in reduced dimensional spacesIndustrial plant optimization in reduced dimensional spaces
Industrial plant optimization in reduced dimensional spaces
 
SLE2015: Distributed ATL
SLE2015: Distributed ATLSLE2015: Distributed ATL
SLE2015: Distributed ATL
 
Online test program generator for RISC-V processors
Online test program generator for RISC-V processorsOnline test program generator for RISC-V processors
Online test program generator for RISC-V processors
 
Generating Automated and Online Test Oracles for Simulink Models with Continu...
Generating Automated and Online Test Oracles for Simulink Models with Continu...Generating Automated and Online Test Oracles for Simulink Models with Continu...
Generating Automated and Online Test Oracles for Simulink Models with Continu...
 
Compiler optimization
Compiler optimizationCompiler optimization
Compiler optimization
 
design-compiler.pdf
design-compiler.pdfdesign-compiler.pdf
design-compiler.pdf
 
Model checker for NTCC
Model checker for NTCCModel checker for NTCC
Model checker for NTCC
 
testing
testingtesting
testing
 
A calculus of mobile Real-Time processes
A calculus of mobile Real-Time processesA calculus of mobile Real-Time processes
A calculus of mobile Real-Time processes
 
Lecture#6 functions in c++
Lecture#6 functions in c++Lecture#6 functions in c++
Lecture#6 functions in c++
 
2 b queues
2 b queues2 b queues
2 b queues
 
Supporting Change in Product Lines within the Context of Use Case-driven Deve...
Supporting Change in Product Lines within the Context of Use Case-driven Deve...Supporting Change in Product Lines within the Context of Use Case-driven Deve...
Supporting Change in Product Lines within the Context of Use Case-driven Deve...
 
Optimizing Tcl Bytecode
Optimizing Tcl BytecodeOptimizing Tcl Bytecode
Optimizing Tcl Bytecode
 
On using BS to improve the
On using BS to improve theOn using BS to improve the
On using BS to improve the
 

Plus de Artur Boronat

Code-First Model-Driven Engineering: On the Agile Adoption of MDE
Code-First Model-Driven Engineering:On the Agile Adoption of MDECode-First Model-Driven Engineering:On the Agile Adoption of MDE
Code-First Model-Driven Engineering: On the Agile Adoption of MDE
Artur Boronat
 
Offline Delta-Driven Model Transformation with Dependency Injection
Offline Delta-Driven Model Transformation with Dependency InjectionOffline Delta-Driven Model Transformation with Dependency Injection
Offline Delta-Driven Model Transformation with Dependency Injection
Artur Boronat
 
Expressive and Efficient Model Transformation with an Internal DSL of Xtend
Expressive and Efficient Model Transformation with an Internal DSL of XtendExpressive and Efficient Model Transformation with an Internal DSL of Xtend
Expressive and Efficient Model Transformation with an Internal DSL of Xtend
Artur Boronat
 

Plus de Artur Boronat (6)

Managing model-to-model transformations at scale with YAMTL (lowcomote)
Managing model-to-model transformations at scale with YAMTL (lowcomote)Managing model-to-model transformations at scale with YAMTL (lowcomote)
Managing model-to-model transformations at scale with YAMTL (lowcomote)
 
Code-First Model-Driven Engineering: On the Agile Adoption of MDE
Code-First Model-Driven Engineering:On the Agile Adoption of MDECode-First Model-Driven Engineering:On the Agile Adoption of MDE
Code-First Model-Driven Engineering: On the Agile Adoption of MDE
 
Offline Delta-Driven Model Transformation with Dependency Injection
Offline Delta-Driven Model Transformation with Dependency InjectionOffline Delta-Driven Model Transformation with Dependency Injection
Offline Delta-Driven Model Transformation with Dependency Injection
 
Expressive and Efficient Model Transformation with an Internal DSL of Xtend
Expressive and Efficient Model Transformation with an Internal DSL of XtendExpressive and Efficient Model Transformation with an Internal DSL of Xtend
Expressive and Efficient Model Transformation with an Internal DSL of Xtend
 
Structural Model Subtyping with OCL Constraints
Structural Model Subtyping with OCL ConstraintsStructural Model Subtyping with OCL Constraints
Structural Model Subtyping with OCL Constraints
 
Experimentation with a Big-Step Semantics for ATL Model Transformations
Experimentation with a Big-Step Semantics for ATL Model TransformationsExperimentation with a Big-Step Semantics for ATL Model Transformations
Experimentation with a Big-Step Semantics for ATL Model Transformations
 

Dernier

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 

Dernier (20)

Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
How to pick right visual testing tool.pdf
How to pick right visual testing tool.pdfHow to pick right visual testing tool.pdf
How to pick right visual testing tool.pdf
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
SQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionSQL Injection Introduction and Prevention
SQL Injection Introduction and Prevention
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 

A Formal Framework for Prototyping Executable Semantics in ATL