SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
ALE
Agile	Language	Engineering
Sep., 2017
http://gemoc.org/ale/
(2017	– 2019)
CWI-Inria Workshop – Agile Language Engineering 2
Context
Software
intensive
systems
CWI-Inria Workshop – Agile Language Engineering 3
Aerodynamics
Authorities
Avionics
Safety
Regulations
Airlines
Propulsion
System
Mechanical
Structure
Environmental
Impact
Navigation
Communication
s
Human-
Machine
Interaction
Multiple
Concerns
CWI-Inria Workshop – Agile Language Engineering 4
Multiple
Domain-specific
Languages
CWI-Inria Workshop – Agile Language Engineering 5
CWI-Inria Workshop – Agile Language Engineering 6
§ Challenge #1: Language Modularity & Reuse
• Modular extension
• Incremental compilation
• Language modules
• Language interfaces
§ Challenge #2: Live Languages
• Incremental modeling
• Immediate feedback
Software	Language	Engineering	Challenges
CWI-Inria Workshop – Agile Language Engineering 7
§ Software Analysis and Transformation
§ Software analysis, reverse- and re-engineering
§ Strong background in metaprogramming, static analysis
§ SLE: mainly technical DSLs (GUIs, web, configuration, etc.)
CWI	SWAT
http://rascal-mpl.org/
http://enso-lang.org/
Jurgen J. Vinju
Group Leader
Tijs van der Storm
ALE Coordinator
CWI-Inria Workshop – Agile Language Engineering 8
§ Diversity-centric Software Engineering
§ Diversity of platforms, languages, features, failures
§ Strong background in model-driven engineering
§ SLE: mainly business DSLs (avionics, IoT, agronomy, etc.)
Inria DiverSE
http://gemoc.org/
Benoit Baudry
Group Leader
Benoit Combemale
ALE Coordinator
http://melange-lang.org/
CWI-Inria Workshop – Agile Language Engineering 9
§ Olivier Barais, Professor, Inria and Univ. Rennes 1, France
§ Benoit Baudry, Research Scientist, Inria, France
§ Benoit Combemale, Associate Professor, Inria and UR1 1, France
§ Fabien Coulon, Research Engineer, Inria and UR1, France
§ Thomas Degueule, Associate Research Scientist, CWI, The Netherlands
§ Manuel Leduc, PhD Student, Inria and Univ. Rennes 1, France
§ Riemer van Rozen, PhD Student, CWI, The Netherlands
§ Tijs van der Storm, Professor, CWI, The Netherlands
§ Pablo Inostroza Valdera, PhD Student, CWI, The Netherlands
§ Jurgen Vinju, Professor, CWI, The Netherlands
§ Didier Vojtisek, Research Engineer, Inria, France
ALE	Members
CWI-Inria Workshop – Agile Language Engineering 10
Timeline
CWI-Inria Workshop – Agile Language Engineering 11
Events
§ Workshop on Language Reuse, March 17 – 24, 2017
§ McGill’s Bellairs Research Institute – Holetown, Barbados
CWI-Inria Workshop – Agile Language Engineering 12
Events
§ Dagstuhl Seminar #17342 (SLEBoK)
• The Software Language Engineering Body of Knowledge
§ August 20 – 25, 2017
§ Schloss Dagstuhl – Wadern, Germany
§ https://www.dagstuhl.de/17342
Results
CWI-Inria Workshop – Agile Language Engineering 13
Foreword:	Executable	DSLs
class State {
def void step(String evt) {
Transition fireable = self.out
.findFirst[event == evt]
fireable.step(event)
}
}
class Transition {
def void step(String evt) {
self.machine.current =
self.tgt
}
}
CWI-Inria Workshop – Agile Language Engineering 15
Modular	Language	Extension
Syntax
Semantics
FSM GuardedFSM
ExecGuardedFSM
ExecFSM
CWI-Inria Workshop – Agile Language Engineering 16
§ A language implementation pattern that enables
1. Independent extensibility of syntax and semantics
2. With incremental compilation
3. Without anticipation
The	REVISITOR Pattern
Revisiting Visitors for Modular Extension of Executable DSMLs
Manuel Leduc, Thomas Degueule, Benoit Combemale, Tijs van der Storm, Olivier Barais
In 20th International Conference on Model Driven Engineering Languages and Systems (MODELS), 2017
interface FSMRev<M, S, F extends S, T> {
F finalState(FinalState it);
S state(State it);
default F $(FinalState it) {
return finalState(it);
}
default S $(State it) {
if(it instanceof FinalState)
return finalState((FinalState) it);
return state(it);
}
}
interface Pr { String print(); }
interface PrintFSM extends FSMRev<Pr, Pr, Pr, Pr> {
default Pr machine(Machine it) {
return () -> it.states.stream().map(s ->
$(s).print()).collect(joining());
}
default Pr state(State it) { /* ... */ }
default Pr finalState(FinalState it) {
return () -> "*" + state(it).print();
}
default Pr transition(Transition it) {
return () -> it.event + " => " + it.target.name;
}
}
CWI-Inria Workshop – Agile Language Engineering 17
The	Action	Language	for	Ecore (ALE)
§ A high-level semantics definition language that compiles to the
REVISITOR pattern
§ Currently transferring the technology to Obeo
§ Ultimately to http://eclipse.org/ecoretools/
behavior execution;
import ecore “GuardedFsm.ecore”;
import ale execfsm;
import ale evalexp;
open class GuardedTransition {
def void step(String ch) {
if ($[self.guard].eval().equals(true))
$[super].step(ch);
}
}
behavior timedprinting;
import ecore “TimedFsm.ecore”;
import ale printing;
open class TimedTransition {
def String print() {
return self.time + “@" + $[super].print();
}
}
EcoreTools-Next: Executable DSLs made (more) accessible
Cédric Brun, Yvan Lussaud, Benoit Combemale, Fabien Coulon
Presented at EclipseCon France, Toulouse, 2017
CWI-Inria Workshop – Agile Language Engineering 18
§ Bridge the gulf of evaluation between the edition of a model and
its execution
§ Live DSLs: Shorten the feedback loop between a model and its
execution (avoid the edit-compile-restart cycle)
§ The running model is updated instantly after every change to the
model
Live	Textual	Domain-specific	Languages
Towards Live Domain-specific Languages:
From text differencing to adapting models at run time
Riemer van Rozen, Tijs van der Storm
In Software and Systems Modeling (SoSyM), 2017
CWI-Inria Workshop – Agile Language Engineering 19
CWI-Inria Workshop – Agile Language Engineering 20
Ongoing:	Bridging	Technological	Spaces
data Machine =
machine(str name, list[State] states);
data State =
state(str name, list[Trans] transitions);
data Trans =
trans(str event, Ref[State] to);
CWI-Inria Workshop – Agile Language Engineering 21
§ Incremental compilation is the first step towards the
definition of language modules
§ With proper provided/required interfaces
§ Towards Component-Based Software Language
Engineering
§ As a support for Concern-Oriented Language Development
(Manuel Leduc’s PhD @ DiverSE)
Future	Work
Evolving and Composing DSLs 22
EOF
Thank	you!
http://gemoc.org/ale/

Contenu connexe

Similaire à Inria/CWI ALE team (progresses in Sep., 2017)

Code in the cloud with eclipse che and docker / snowcamp.io 2017
Code in the cloud with eclipse che and docker /  snowcamp.io 2017Code in the cloud with eclipse che and docker /  snowcamp.io 2017
Code in the cloud with eclipse che and docker / snowcamp.io 2017Florent BENOIT
 
Code in the cloud with Eclipse Che and Docker
Code in the cloud with Eclipse Che and DockerCode in the cloud with Eclipse Che and Docker
Code in the cloud with Eclipse Che and DockerFlorent BENOIT
 
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDENantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDEFlorent BENOIT
 
Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016
Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016
Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016Florent BENOIT
 
DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...
DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...
DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...Deltares
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformNuxeo
 
DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15Edureka!
 
Why scala - executive overview
Why scala - executive overviewWhy scala - executive overview
Why scala - executive overviewRazvan Cojocaru
 
All good things scale - ohs 2020 - 03.13.2020
All good things scale - ohs 2020 - 03.13.2020All good things scale - ohs 2020 - 03.13.2020
All good things scale - ohs 2020 - 03.13.2020Amanda Wozniak
 
2016-IGA_626759_PAWAN KUMAR
2016-IGA_626759_PAWAN KUMAR2016-IGA_626759_PAWAN KUMAR
2016-IGA_626759_PAWAN KUMARPawan singh
 
[DevRelCon July 2018] Because we all learn things differently
[DevRelCon July 2018] Because we all learn things differently[DevRelCon July 2018] Because we all learn things differently
[DevRelCon July 2018] Because we all learn things differentlyTomomi Imura
 
ROLE Technologies – A possible contribution to Apache Rave?
ROLE Technologies – A possible contribution to Apache Rave?ROLE Technologies – A possible contribution to Apache Rave?
ROLE Technologies – A possible contribution to Apache Rave?Dominik Renzel
 
CS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionCS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionEelco Visser
 
AestasIT - Internal DSLs in Scala
AestasIT - Internal DSLs in ScalaAestasIT - Internal DSLs in Scala
AestasIT - Internal DSLs in ScalaDmitry Buzdin
 
Lambdas & Streams
Lambdas & StreamsLambdas & Streams
Lambdas & StreamsC4Media
 
F# Functional and MultiCore Programming
F# Functional and MultiCore Programming F# Functional and MultiCore Programming
F# Functional and MultiCore Programming Rodrigo Vidal
 
Arquillian 소개
Arquillian 소개Arquillian 소개
Arquillian 소개성욱 전
 
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트jbugkorea
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloudlennartkats
 

Similaire à Inria/CWI ALE team (progresses in Sep., 2017) (20)

Code in the cloud with eclipse che and docker / snowcamp.io 2017
Code in the cloud with eclipse che and docker /  snowcamp.io 2017Code in the cloud with eclipse che and docker /  snowcamp.io 2017
Code in the cloud with eclipse che and docker / snowcamp.io 2017
 
Code in the cloud with Eclipse Che and Docker
Code in the cloud with Eclipse Che and DockerCode in the cloud with Eclipse Che and Docker
Code in the cloud with Eclipse Che and Docker
 
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDENantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
 
Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016
Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016
Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016
 
DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...
DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...
DSD-INT 2014 - OpenMI symposium - OpenMI and other model coupling standards, ...
 
The Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platformThe Nuxeo Way: leveraging open source to build a world-class ECM platform
The Nuxeo Way: leveraging open source to build a world-class ECM platform
 
DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15DevOps-Redefining your IT Strategy-28thJan15
DevOps-Redefining your IT Strategy-28thJan15
 
Why scala - executive overview
Why scala - executive overviewWhy scala - executive overview
Why scala - executive overview
 
All good things scale - ohs 2020 - 03.13.2020
All good things scale - ohs 2020 - 03.13.2020All good things scale - ohs 2020 - 03.13.2020
All good things scale - ohs 2020 - 03.13.2020
 
2016-IGA_626759_PAWAN KUMAR
2016-IGA_626759_PAWAN KUMAR2016-IGA_626759_PAWAN KUMAR
2016-IGA_626759_PAWAN KUMAR
 
[DevRelCon July 2018] Because we all learn things differently
[DevRelCon July 2018] Because we all learn things differently[DevRelCon July 2018] Because we all learn things differently
[DevRelCon July 2018] Because we all learn things differently
 
ROLE Technologies – A possible contribution to Apache Rave?
ROLE Technologies – A possible contribution to Apache Rave?ROLE Technologies – A possible contribution to Apache Rave?
ROLE Technologies – A possible contribution to Apache Rave?
 
CS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: IntroductionCS4200 2019 Lecture 1: Introduction
CS4200 2019 Lecture 1: Introduction
 
AestasIT - Internal DSLs in Scala
AestasIT - Internal DSLs in ScalaAestasIT - Internal DSLs in Scala
AestasIT - Internal DSLs in Scala
 
L03 Software Design
L03 Software DesignL03 Software Design
L03 Software Design
 
Lambdas & Streams
Lambdas & StreamsLambdas & Streams
Lambdas & Streams
 
F# Functional and MultiCore Programming
F# Functional and MultiCore Programming F# Functional and MultiCore Programming
F# Functional and MultiCore Programming
 
Arquillian 소개
Arquillian 소개Arquillian 소개
Arquillian 소개
 
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloud
 

Plus de Benoit Combemale

When Scientific Software Meets (Model-Driven) Software Engineering
When Scientific Software Meets (Model-Driven) Software EngineeringWhen Scientific Software Meets (Model-Driven) Software Engineering
When Scientific Software Meets (Model-Driven) Software EngineeringBenoit Combemale
 
Table ronde: les sciences du logiciel au croisement des autres sciences
Table ronde: les sciences du logiciel au croisement des autres sciencesTable ronde: les sciences du logiciel au croisement des autres sciences
Table ronde: les sciences du logiciel au croisement des autres sciencesBenoit Combemale
 
Towards Smart Modeling (Environments)
Towards Smart Modeling (Environments)Towards Smart Modeling (Environments)
Towards Smart Modeling (Environments)Benoit Combemale
 
SLE Most Influential Paper (MIP) Awards 2018 and 2019
SLE Most Influential Paper (MIP) Awards 2018 and 2019SLE Most Influential Paper (MIP) Awards 2018 and 2019
SLE Most Influential Paper (MIP) Awards 2018 and 2019Benoit Combemale
 
Breathe Life Into Your IDE
Breathe Life Into Your IDEBreathe Life Into Your IDE
Breathe Life Into Your IDEBenoit Combemale
 
Model Execution: Past, Present and Future
Model Execution: Past, Present and FutureModel Execution: Past, Present and Future
Model Execution: Past, Present and FutureBenoit Combemale
 
Execution Framework of the GEMOC Studio
Execution Framework of the GEMOC StudioExecution Framework of the GEMOC Studio
Execution Framework of the GEMOC StudioBenoit Combemale
 
Smart Modeling: On the Convergence of Scientific and Engineering Models
Smart Modeling: On the Convergence of Scientific and Engineering ModelsSmart Modeling: On the Convergence of Scientific and Engineering Models
Smart Modeling: On the Convergence of Scientific and Engineering ModelsBenoit Combemale
 
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...Benoit Combemale
 
Modeling For Sustainability: Or How to Make Smart CPS Smarter?
Modeling For Sustainability: Or How to Make Smart CPS Smarter?Modeling For Sustainability: Or How to Make Smart CPS Smarter?
Modeling For Sustainability: Or How to Make Smart CPS Smarter?Benoit Combemale
 
Introduction of the SLE'17 conference
Introduction of the SLE'17 conferenceIntroduction of the SLE'17 conference
Introduction of the SLE'17 conferenceBenoit Combemale
 
Sound, yet Flexible, Modeling: A Language Engineering Point Of View
Sound, yet Flexible, Modeling: A Language Engineering Point Of ViewSound, yet Flexible, Modeling: A Language Engineering Point Of View
Sound, yet Flexible, Modeling: A Language Engineering Point Of ViewBenoit Combemale
 
Modeling for Sustainability
Modeling for SustainabilityModeling for Sustainability
Modeling for SustainabilityBenoit Combemale
 
Dynamic V&V in Language-Oriented Modeling
Dynamic V&V in Language-Oriented ModelingDynamic V&V in Language-Oriented Modeling
Dynamic V&V in Language-Oriented ModelingBenoit Combemale
 
Model executability within the GEMOC Studio
Model executability within the GEMOC StudioModel executability within the GEMOC Studio
Model executability within the GEMOC StudioBenoit Combemale
 
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...Benoit Combemale
 
A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...
A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...
A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...Benoit Combemale
 
Executable Metamodeling for Model V&V (May 25th, 2010)
Executable Metamodeling for Model V&V (May 25th, 2010)Executable Metamodeling for Model V&V (May 25th, 2010)
Executable Metamodeling for Model V&V (May 25th, 2010)Benoit Combemale
 
Formally Defining and Iterating Infinite Models (MODELS 2012)
Formally Defining and Iterating Infinite Models (MODELS 2012)Formally Defining and Iterating Infinite Models (MODELS 2012)
Formally Defining and Iterating Infinite Models (MODELS 2012)Benoit Combemale
 
Hyper-Agility: A Model-Driven Software Agility from Design-Time to Run-Time
Hyper-Agility: A Model-Driven Software Agility from Design-Time to Run-TimeHyper-Agility: A Model-Driven Software Agility from Design-Time to Run-Time
Hyper-Agility: A Model-Driven Software Agility from Design-Time to Run-TimeBenoit Combemale
 

Plus de Benoit Combemale (20)

When Scientific Software Meets (Model-Driven) Software Engineering
When Scientific Software Meets (Model-Driven) Software EngineeringWhen Scientific Software Meets (Model-Driven) Software Engineering
When Scientific Software Meets (Model-Driven) Software Engineering
 
Table ronde: les sciences du logiciel au croisement des autres sciences
Table ronde: les sciences du logiciel au croisement des autres sciencesTable ronde: les sciences du logiciel au croisement des autres sciences
Table ronde: les sciences du logiciel au croisement des autres sciences
 
Towards Smart Modeling (Environments)
Towards Smart Modeling (Environments)Towards Smart Modeling (Environments)
Towards Smart Modeling (Environments)
 
SLE Most Influential Paper (MIP) Awards 2018 and 2019
SLE Most Influential Paper (MIP) Awards 2018 and 2019SLE Most Influential Paper (MIP) Awards 2018 and 2019
SLE Most Influential Paper (MIP) Awards 2018 and 2019
 
Breathe Life Into Your IDE
Breathe Life Into Your IDEBreathe Life Into Your IDE
Breathe Life Into Your IDE
 
Model Execution: Past, Present and Future
Model Execution: Past, Present and FutureModel Execution: Past, Present and Future
Model Execution: Past, Present and Future
 
Execution Framework of the GEMOC Studio
Execution Framework of the GEMOC StudioExecution Framework of the GEMOC Studio
Execution Framework of the GEMOC Studio
 
Smart Modeling: On the Convergence of Scientific and Engineering Models
Smart Modeling: On the Convergence of Scientific and Engineering ModelsSmart Modeling: On the Convergence of Scientific and Engineering Models
Smart Modeling: On the Convergence of Scientific and Engineering Models
 
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreToo...
 
Modeling For Sustainability: Or How to Make Smart CPS Smarter?
Modeling For Sustainability: Or How to Make Smart CPS Smarter?Modeling For Sustainability: Or How to Make Smart CPS Smarter?
Modeling For Sustainability: Or How to Make Smart CPS Smarter?
 
Introduction of the SLE'17 conference
Introduction of the SLE'17 conferenceIntroduction of the SLE'17 conference
Introduction of the SLE'17 conference
 
Sound, yet Flexible, Modeling: A Language Engineering Point Of View
Sound, yet Flexible, Modeling: A Language Engineering Point Of ViewSound, yet Flexible, Modeling: A Language Engineering Point Of View
Sound, yet Flexible, Modeling: A Language Engineering Point Of View
 
Modeling for Sustainability
Modeling for SustainabilityModeling for Sustainability
Modeling for Sustainability
 
Dynamic V&V in Language-Oriented Modeling
Dynamic V&V in Language-Oriented ModelingDynamic V&V in Language-Oriented Modeling
Dynamic V&V in Language-Oriented Modeling
 
Model executability within the GEMOC Studio
Model executability within the GEMOC StudioModel executability within the GEMOC Studio
Model executability within the GEMOC Studio
 
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...
A Tool-Supported Approach for Omniscient Debugging and Concurrent Execution o...
 
A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...
A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...
A Tool-Supported Approach for Concurrent Execution of Heterogeneous Models (E...
 
Executable Metamodeling for Model V&V (May 25th, 2010)
Executable Metamodeling for Model V&V (May 25th, 2010)Executable Metamodeling for Model V&V (May 25th, 2010)
Executable Metamodeling for Model V&V (May 25th, 2010)
 
Formally Defining and Iterating Infinite Models (MODELS 2012)
Formally Defining and Iterating Infinite Models (MODELS 2012)Formally Defining and Iterating Infinite Models (MODELS 2012)
Formally Defining and Iterating Infinite Models (MODELS 2012)
 
Hyper-Agility: A Model-Driven Software Agility from Design-Time to Run-Time
Hyper-Agility: A Model-Driven Software Agility from Design-Time to Run-TimeHyper-Agility: A Model-Driven Software Agility from Design-Time to Run-Time
Hyper-Agility: A Model-Driven Software Agility from Design-Time to Run-Time
 

Dernier

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 

Dernier (20)

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 

Inria/CWI ALE team (progresses in Sep., 2017)

  • 2. CWI-Inria Workshop – Agile Language Engineering 2 Context Software intensive systems
  • 3. CWI-Inria Workshop – Agile Language Engineering 3 Aerodynamics Authorities Avionics Safety Regulations Airlines Propulsion System Mechanical Structure Environmental Impact Navigation Communication s Human- Machine Interaction Multiple Concerns
  • 4. CWI-Inria Workshop – Agile Language Engineering 4 Multiple Domain-specific Languages
  • 5. CWI-Inria Workshop – Agile Language Engineering 5
  • 6. CWI-Inria Workshop – Agile Language Engineering 6 § Challenge #1: Language Modularity & Reuse • Modular extension • Incremental compilation • Language modules • Language interfaces § Challenge #2: Live Languages • Incremental modeling • Immediate feedback Software Language Engineering Challenges
  • 7. CWI-Inria Workshop – Agile Language Engineering 7 § Software Analysis and Transformation § Software analysis, reverse- and re-engineering § Strong background in metaprogramming, static analysis § SLE: mainly technical DSLs (GUIs, web, configuration, etc.) CWI SWAT http://rascal-mpl.org/ http://enso-lang.org/ Jurgen J. Vinju Group Leader Tijs van der Storm ALE Coordinator
  • 8. CWI-Inria Workshop – Agile Language Engineering 8 § Diversity-centric Software Engineering § Diversity of platforms, languages, features, failures § Strong background in model-driven engineering § SLE: mainly business DSLs (avionics, IoT, agronomy, etc.) Inria DiverSE http://gemoc.org/ Benoit Baudry Group Leader Benoit Combemale ALE Coordinator http://melange-lang.org/
  • 9. CWI-Inria Workshop – Agile Language Engineering 9 § Olivier Barais, Professor, Inria and Univ. Rennes 1, France § Benoit Baudry, Research Scientist, Inria, France § Benoit Combemale, Associate Professor, Inria and UR1 1, France § Fabien Coulon, Research Engineer, Inria and UR1, France § Thomas Degueule, Associate Research Scientist, CWI, The Netherlands § Manuel Leduc, PhD Student, Inria and Univ. Rennes 1, France § Riemer van Rozen, PhD Student, CWI, The Netherlands § Tijs van der Storm, Professor, CWI, The Netherlands § Pablo Inostroza Valdera, PhD Student, CWI, The Netherlands § Jurgen Vinju, Professor, CWI, The Netherlands § Didier Vojtisek, Research Engineer, Inria, France ALE Members
  • 10. CWI-Inria Workshop – Agile Language Engineering 10 Timeline
  • 11. CWI-Inria Workshop – Agile Language Engineering 11 Events § Workshop on Language Reuse, March 17 – 24, 2017 § McGill’s Bellairs Research Institute – Holetown, Barbados
  • 12. CWI-Inria Workshop – Agile Language Engineering 12 Events § Dagstuhl Seminar #17342 (SLEBoK) • The Software Language Engineering Body of Knowledge § August 20 – 25, 2017 § Schloss Dagstuhl – Wadern, Germany § https://www.dagstuhl.de/17342
  • 13. Results CWI-Inria Workshop – Agile Language Engineering 13
  • 14. Foreword: Executable DSLs class State { def void step(String evt) { Transition fireable = self.out .findFirst[event == evt] fireable.step(event) } } class Transition { def void step(String evt) { self.machine.current = self.tgt } }
  • 15. CWI-Inria Workshop – Agile Language Engineering 15 Modular Language Extension Syntax Semantics FSM GuardedFSM ExecGuardedFSM ExecFSM
  • 16. CWI-Inria Workshop – Agile Language Engineering 16 § A language implementation pattern that enables 1. Independent extensibility of syntax and semantics 2. With incremental compilation 3. Without anticipation The REVISITOR Pattern Revisiting Visitors for Modular Extension of Executable DSMLs Manuel Leduc, Thomas Degueule, Benoit Combemale, Tijs van der Storm, Olivier Barais In 20th International Conference on Model Driven Engineering Languages and Systems (MODELS), 2017 interface FSMRev<M, S, F extends S, T> { F finalState(FinalState it); S state(State it); default F $(FinalState it) { return finalState(it); } default S $(State it) { if(it instanceof FinalState) return finalState((FinalState) it); return state(it); } } interface Pr { String print(); } interface PrintFSM extends FSMRev<Pr, Pr, Pr, Pr> { default Pr machine(Machine it) { return () -> it.states.stream().map(s -> $(s).print()).collect(joining()); } default Pr state(State it) { /* ... */ } default Pr finalState(FinalState it) { return () -> "*" + state(it).print(); } default Pr transition(Transition it) { return () -> it.event + " => " + it.target.name; } }
  • 17. CWI-Inria Workshop – Agile Language Engineering 17 The Action Language for Ecore (ALE) § A high-level semantics definition language that compiles to the REVISITOR pattern § Currently transferring the technology to Obeo § Ultimately to http://eclipse.org/ecoretools/ behavior execution; import ecore “GuardedFsm.ecore”; import ale execfsm; import ale evalexp; open class GuardedTransition { def void step(String ch) { if ($[self.guard].eval().equals(true)) $[super].step(ch); } } behavior timedprinting; import ecore “TimedFsm.ecore”; import ale printing; open class TimedTransition { def String print() { return self.time + “@" + $[super].print(); } } EcoreTools-Next: Executable DSLs made (more) accessible Cédric Brun, Yvan Lussaud, Benoit Combemale, Fabien Coulon Presented at EclipseCon France, Toulouse, 2017
  • 18. CWI-Inria Workshop – Agile Language Engineering 18 § Bridge the gulf of evaluation between the edition of a model and its execution § Live DSLs: Shorten the feedback loop between a model and its execution (avoid the edit-compile-restart cycle) § The running model is updated instantly after every change to the model Live Textual Domain-specific Languages Towards Live Domain-specific Languages: From text differencing to adapting models at run time Riemer van Rozen, Tijs van der Storm In Software and Systems Modeling (SoSyM), 2017
  • 19. CWI-Inria Workshop – Agile Language Engineering 19
  • 20. CWI-Inria Workshop – Agile Language Engineering 20 Ongoing: Bridging Technological Spaces data Machine = machine(str name, list[State] states); data State = state(str name, list[Trans] transitions); data Trans = trans(str event, Ref[State] to);
  • 21. CWI-Inria Workshop – Agile Language Engineering 21 § Incremental compilation is the first step towards the definition of language modules § With proper provided/required interfaces § Towards Component-Based Software Language Engineering § As a support for Concern-Oriented Language Development (Manuel Leduc’s PhD @ DiverSE) Future Work
  • 22. Evolving and Composing DSLs 22 EOF Thank you! http://gemoc.org/ale/