SlideShare a Scribd company logo
Leveraging Software Product Lines
Engineering in the construction of
Domain-Specific Languages
David Méndez Acuña
Benoît Combemale
VaryMDE
DiverSE Coffe – 23th April 2015
Problem statement
UML state machines
diagrams
Rhapsody
Classical
statecharts
States and simple transitions (triggers,
conditions, etc.)
Example: A family of languages for Finite
State Machines
A	
   B	
  
event[condition]	
  
Academic example:
Crane, M., Dingel, J., UML vs. classical vs. Rhapsody
statecharts: not all models are created equal.
Software & Systems Modeling. Vol. 6 No. 4. Springer-
Verlag 2007.
Semantic and syntactic variation
points in languages for FSM
Example: A family of languages for Finite State Machines
Family of Languages
Feature A
Feature B Feature B
F. D F. D F. D F. D F. D F. D
Language Product Line
Software Languages are Software too!
Software Engineering Techniques … Software Product Lines Engineering
Méndez-Acuña’s
PhD
Jean-Marie Favre, Dragan Gasevic, Ralf Lmmel, and Ekaterina Pek. Empirical Language Analysis in Software
Linguistics. In Software Language Engineering. Springer. 2011
Steffen Zschaler, Pablo Sánchez, Joo Santos, Mauricio Alférez, Awais Rashid, Lidia Fuentes, Ana Moreira,
Joo Arajo, and Uir Kulesza. VML* A Family of Languages for Variability Management in Software
Product Lines. In Software Language Engineering. Springer. 2010.
Challenges
Language Units
Family of DSLs
Variability Models &
Configuration
Feature A
Feature B Feature B
F. D F. D F. D F. D F. D F. D
Multi-dimensional & staged
variability modeling
Configured
DSL
Language Units
Composition
Modular Languages
Design
Let’s get fun!
Tool DEMO
The citizen watch
Initial
displays
alarm 1
alarm 2
start	
  
T1	
  
a	
  
a	
  
T2	
  
David Harel. 1987. Statecharts:A visual formalism for complex systems. Sci. Comput. Program. 8, 3 (June 1987), 231-274.
Button
a
Display
The citizen watch
Initial
displays
alarm 1
alarm 2
start	
  
T1	
  
a	
  
a	
  
T2	
  
David Harel. 1987. Statecharts:A visual formalism for complex systems. Sci. Comput. Program. 8, 3 (June 1987), 231-274.
while(alarm1.active){
println(‘(1) beep’)
}
while(alarm1.active){
println(‘(2) beep’)
}
doActivity
doActivity
Core FSM: State Machine, States,
Transitions,Triggers
Imperative Language:
Program, Loop, Conditions, …
The citizen watch
Core FSM: State Machine,
States,Transitions,Triggers
Imperative Language:
Program, Loop, Conditions, …Required
Interface
Provided
Interface
aggregation
The citizen watch
Initial
displays
alarm 1
alarm 2
start	
  
T1	
  
a	
  
T2	
  
David Harel. 1987. Statecharts:A visual formalism for complex systems. Sci. Comput. Program. 8, 3 (June 1987), 231-274.
Core FSM: State Machine, States,
Transitions,Triggers CompositeStates:
CompositeState, …+
Initial
displays
alarm 1
alarm 2
start	
  
T1	
  
a	
  
a	
  
T2	
  
The citizen watch
Initial
displays
alarm 1
alarm 2
start	
  
T1	
  
a	
  
T2	
  
David Harel. 1987. Statecharts:A visual formalism for complex systems. Sci. Comput. Program. 8, 3 (June 1987), 231-274.
while(alarm1.active){
println(‘(1) beep’)
}
while(alarm1.active){
println(‘(2) beep’)
}
doActivity
doActivity
Core FSM: State Machine, States,
Transitions,Triggers CompositeStates:
CompositeState, …+
The citizen watch
Core FSM: State Machine,
States,Transitions,Triggers
Imperative Language:
Program, Loop, Conditions, …Required
Interface
Provided
Interface
CompositeStates:
CompositeState, …
Extension
Point
Extension
aggregation
extension
Melange
Some cool features coming…
From Variability Models to Software Languages
Engineering in the Large
Some cool features coming…
Program
+exec() : void
Statement
+eval() : void
Condition
+eval() : void
Loop
+eval() : void
VarDecl
+eval() : void
StatementListContainer
+exec() : void
Statement
+eval() : void
Method
+exec() : void
statements
0 .. *
statements0 .. *
Condition
+eval() : void
ForLoop
+eval() : void
LocalVariableStatement
+eval() : void
Statement
+eval() : void
Block
+eval() : void
IfStatement
+eval() : void
ForStatement
+eval() : void
VariableDeclaration
+eval() : void
statements
0 .. *Constraint
+eval(context : Map) : boolean
Provided Interface: Java Provided Interface: C#
Required Interface:
Finite State Machines
Binding
Java <-> FiniteStateMachines
Binding
C# <-> FiniteStateMachines
Structural heterogeneities
FORYOUR ATTENTION,
THANKYOU!
QUESTIONS, COMMENTS,
FEEDBACK?

More Related Content

Similar to Tool demo composition of executable languages

lec00-Introduction.pdf
lec00-Introduction.pdflec00-Introduction.pdf
lec00-Introduction.pdf
wigewej294
 
Variability Management in Domain Specific Languages
Variability Management in Domain Specific LanguagesVariability Management in Domain Specific Languages
Variability Management in Domain Specific Languages
David Méndez-Acuña
 
Introduction to F#
Introduction to F#Introduction to F#
Introduction to F#
Talbott Crowell
 
Can programming be liberated from the von neumman style
Can programming be liberated from the von neumman styleCan programming be liberated from the von neumman style
Can programming be liberated from the von neumman style
shady_10
 
Lecture1 compilers
Lecture1 compilersLecture1 compilers
Lecture1 compilers
Aftab Ahmad
 
Backus turingaward lecture
Backus turingaward lectureBackus turingaward lecture
Backus turingaward lecture
KulOusemnes
 
Can Programming Be Liberated from the von Neumann Style? by John Backus
Can Programming Be Liberated from the von Neumann Style? by John BackusCan Programming Be Liberated from the von Neumann Style? by John Backus
Can Programming Be Liberated from the von Neumann Style? by John Backus
mustafa sarac
 
A DSL to feedback formal verification results
A DSL to feedback formal verification resultsA DSL to feedback formal verification results
A DSL to feedback formal verification results
Marc Pantel
 
Computer program, computer languages, computer software
Computer program, computer languages, computer softwareComputer program, computer languages, computer software
Computer program, computer languages, computer software
Sweta Kumari Barnwal
 
Coping with Semantic Variation Points in Domain-Specific Modeling Languages
Coping with Semantic Variation Points in Domain-Specific Modeling LanguagesCoping with Semantic Variation Points in Domain-Specific Modeling Languages
Coping with Semantic Variation Points in Domain-Specific Modeling Languages
Marc Pantel
 
International journal of compiling
International journal of compilingInternational journal of compiling
International journal of compiling
Andivann
 
International journal of compiling
International journal of compilingInternational journal of compiling
International journal of compiling
Mgcal D. Saul Magfield
 
r merged.pdf
r merged.pdfr merged.pdf
r merged.pdf
NarrendraShiva
 
Pascal programming language
Pascal programming languagePascal programming language
Pascal programming language
Verónica Meo Laos
 
Compoutational Physics
Compoutational PhysicsCompoutational Physics
Compoutational Physics
Saad Shaukat
 
Introduction to automata
Introduction to automataIntroduction to automata
Introduction to automata
Shubham Bansal
 
6272 cnote
6272 cnote6272 cnote
6272 cnote
P Kiran Sree
 
C progrmming
C progrmmingC progrmming
C progrmming
Shivam Singhal
 
Chapter1 Introduction of compiler
Chapter1 Introduction of compiler Chapter1 Introduction of compiler
Chapter1 Introduction of compiler
Danish Alam
 

Similar to Tool demo composition of executable languages (20)

lec00-Introduction.pdf
lec00-Introduction.pdflec00-Introduction.pdf
lec00-Introduction.pdf
 
Variability Management in Domain Specific Languages
Variability Management in Domain Specific LanguagesVariability Management in Domain Specific Languages
Variability Management in Domain Specific Languages
 
Introduction to F#
Introduction to F#Introduction to F#
Introduction to F#
 
Can programming be liberated from the von neumman style
Can programming be liberated from the von neumman styleCan programming be liberated from the von neumman style
Can programming be liberated from the von neumman style
 
Lecture1 compilers
Lecture1 compilersLecture1 compilers
Lecture1 compilers
 
Backus turingaward lecture
Backus turingaward lectureBackus turingaward lecture
Backus turingaward lecture
 
Can Programming Be Liberated from the von Neumann Style? by John Backus
Can Programming Be Liberated from the von Neumann Style? by John BackusCan Programming Be Liberated from the von Neumann Style? by John Backus
Can Programming Be Liberated from the von Neumann Style? by John Backus
 
A DSL to feedback formal verification results
A DSL to feedback formal verification resultsA DSL to feedback formal verification results
A DSL to feedback formal verification results
 
Computer program, computer languages, computer software
Computer program, computer languages, computer softwareComputer program, computer languages, computer software
Computer program, computer languages, computer software
 
Coping with Semantic Variation Points in Domain-Specific Modeling Languages
Coping with Semantic Variation Points in Domain-Specific Modeling LanguagesCoping with Semantic Variation Points in Domain-Specific Modeling Languages
Coping with Semantic Variation Points in Domain-Specific Modeling Languages
 
International journal of compiling
International journal of compilingInternational journal of compiling
International journal of compiling
 
International journal of compiling
International journal of compilingInternational journal of compiling
International journal of compiling
 
r merged.pdf
r merged.pdfr merged.pdf
r merged.pdf
 
Pascal programming language
Pascal programming languagePascal programming language
Pascal programming language
 
Compoutational Physics
Compoutational PhysicsCompoutational Physics
Compoutational Physics
 
Introduction to automata
Introduction to automataIntroduction to automata
Introduction to automata
 
6272 cnote
6272 cnote6272 cnote
6272 cnote
 
C progrmming
C progrmmingC progrmming
C progrmming
 
Chapter1 Introduction of compiler
Chapter1 Introduction of compiler Chapter1 Introduction of compiler
Chapter1 Introduction of compiler
 
Chap01 scr
Chap01 scrChap01 scr
Chap01 scr
 

Recently uploaded

Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
Ayan Halder
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 

Recently uploaded (20)

Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Using Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional SafetyUsing Xen Hypervisor for Functional Safety
Using Xen Hypervisor for Functional Safety
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 

Tool demo composition of executable languages

  • 1. Leveraging Software Product Lines Engineering in the construction of Domain-Specific Languages David Méndez Acuña Benoît Combemale VaryMDE DiverSE Coffe – 23th April 2015
  • 2. Problem statement UML state machines diagrams Rhapsody Classical statecharts States and simple transitions (triggers, conditions, etc.) Example: A family of languages for Finite State Machines A   B   event[condition]   Academic example: Crane, M., Dingel, J., UML vs. classical vs. Rhapsody statecharts: not all models are created equal. Software & Systems Modeling. Vol. 6 No. 4. Springer- Verlag 2007. Semantic and syntactic variation points in languages for FSM
  • 3. Example: A family of languages for Finite State Machines Family of Languages Feature A Feature B Feature B F. D F. D F. D F. D F. D F. D Language Product Line Software Languages are Software too! Software Engineering Techniques … Software Product Lines Engineering Méndez-Acuña’s PhD Jean-Marie Favre, Dragan Gasevic, Ralf Lmmel, and Ekaterina Pek. Empirical Language Analysis in Software Linguistics. In Software Language Engineering. Springer. 2011 Steffen Zschaler, Pablo Sánchez, Joo Santos, Mauricio Alférez, Awais Rashid, Lidia Fuentes, Ana Moreira, Joo Arajo, and Uir Kulesza. VML* A Family of Languages for Variability Management in Software Product Lines. In Software Language Engineering. Springer. 2010.
  • 4. Challenges Language Units Family of DSLs Variability Models & Configuration Feature A Feature B Feature B F. D F. D F. D F. D F. D F. D Multi-dimensional & staged variability modeling Configured DSL Language Units Composition Modular Languages Design
  • 6. The citizen watch Initial displays alarm 1 alarm 2 start   T1   a   a   T2   David Harel. 1987. Statecharts:A visual formalism for complex systems. Sci. Comput. Program. 8, 3 (June 1987), 231-274. Button a Display
  • 7. The citizen watch Initial displays alarm 1 alarm 2 start   T1   a   a   T2   David Harel. 1987. Statecharts:A visual formalism for complex systems. Sci. Comput. Program. 8, 3 (June 1987), 231-274. while(alarm1.active){ println(‘(1) beep’) } while(alarm1.active){ println(‘(2) beep’) } doActivity doActivity Core FSM: State Machine, States, Transitions,Triggers Imperative Language: Program, Loop, Conditions, …
  • 8. The citizen watch Core FSM: State Machine, States,Transitions,Triggers Imperative Language: Program, Loop, Conditions, …Required Interface Provided Interface aggregation
  • 9. The citizen watch Initial displays alarm 1 alarm 2 start   T1   a   T2   David Harel. 1987. Statecharts:A visual formalism for complex systems. Sci. Comput. Program. 8, 3 (June 1987), 231-274. Core FSM: State Machine, States, Transitions,Triggers CompositeStates: CompositeState, …+ Initial displays alarm 1 alarm 2 start   T1   a   a   T2  
  • 10. The citizen watch Initial displays alarm 1 alarm 2 start   T1   a   T2   David Harel. 1987. Statecharts:A visual formalism for complex systems. Sci. Comput. Program. 8, 3 (June 1987), 231-274. while(alarm1.active){ println(‘(1) beep’) } while(alarm1.active){ println(‘(2) beep’) } doActivity doActivity Core FSM: State Machine, States, Transitions,Triggers CompositeStates: CompositeState, …+
  • 11. The citizen watch Core FSM: State Machine, States,Transitions,Triggers Imperative Language: Program, Loop, Conditions, …Required Interface Provided Interface CompositeStates: CompositeState, … Extension Point Extension aggregation extension
  • 12. Melange Some cool features coming… From Variability Models to Software Languages Engineering in the Large
  • 13. Some cool features coming… Program +exec() : void Statement +eval() : void Condition +eval() : void Loop +eval() : void VarDecl +eval() : void StatementListContainer +exec() : void Statement +eval() : void Method +exec() : void statements 0 .. * statements0 .. * Condition +eval() : void ForLoop +eval() : void LocalVariableStatement +eval() : void Statement +eval() : void Block +eval() : void IfStatement +eval() : void ForStatement +eval() : void VariableDeclaration +eval() : void statements 0 .. *Constraint +eval(context : Map) : boolean Provided Interface: Java Provided Interface: C# Required Interface: Finite State Machines Binding Java <-> FiniteStateMachines Binding C# <-> FiniteStateMachines Structural heterogeneities