16. « Another lesson we should have'learned from the'recent past is
that the'development of''richer''or''more'powerful''programming
languages was a'mistake in'the'sense that these baroque'
monstrosities,'these conglomerations of'idiosyncrasies,'are'really
unmanageable,'both mechanically and'mentally.'
I'see a'great future'for'very systematic and'
very modest programming languages »
ACM'Turing'Lecture,'« The'Humble'Programmer »'
Edsger W.'Dijkstra 16
aka DomainH
Specific
Languages
aka GeneralHPurpose
Languages
1972
18. What are'models used for?
! 18A:Journey:Through:MDE,:DSL:and:SLE H Benoit'Combemale (INRIA'and'Univ.'Rennes'1)'H July'2nd,'2015
Jon'Whittle,'"What do$449$MDE$Practitioners Think About$MDE?"'EESSMod’11
19. Which modeling languages are'used?'
! 19A:Journey:Through:MDE,:DSL:and:SLE H Benoit'Combemale (INRIA'and'Univ.'Rennes'1)'H July'2nd,'2015
Jon'Whittle,'"What do$449$MDE$Practitioners Think About$MDE?"'EESSMod’11
20. Which diagrams are'used?
! 20A:Journey:Through:MDE,:DSL:and:SLE H Benoit'Combemale (INRIA'and'Univ.'Rennes'1)'H July'2nd,'2015
Jon'Whittle,'"What do$449$MDE$Practitioners Think About$MDE?"'EESSMod’11
21. ! 21A:Journey:Through:MDE,:DSL:and:SLE H Benoit'Combemale (INRIA'and'Univ.'Rennes'1)'H July'2nd,'2015
John'Hutchinson,'Mark'Rouncefield,'Jon'Whittle,'"Model!driven engineering'
practices'in'industry."'ICSE'2011:'633!642
"DSLs:are:
far:more:prevalent
than anticipated"
22. ! 22A:Journey:Through:MDE,:DSL:and:SLE H Benoit'Combemale (INRIA'and'Univ.'Rennes'1)'H July'2nd,'2015
J!M.'Favre,'D.'Gasevic,'R.'Lämmel,'and'E.'Pek.'"Empirical language analysis
in'software'linguistics,"'In'Software'Language Engineering,'volume'6563'of'
LNCS,'pages'316–326.'Springer,'2011.
"Software:languages:
are:software:too"
23. • An'external DSL'is a'completely separate language and'with its
own custom'syntax/tooling support'(e.g.,'editor,'compiler)
• Language worbenches:$Eclipse$modeling (EMF,$xText,$GMF,$
Sirius,$Kermeta,$xCore/xTend…),$DSL$Tools,$Meta$Edit+,$MPS,$
GME,$Neverlang,$Delite,$etc.
• An'internal DSL'is more'or'less a'set'of'APIs'written on'top'of'a'
host'language
• Extension$mechanisms:$xTend’s active$annotation,$Scala’s LMS,$
extensions$methods (e.g.,$xTend,$Kotlin,$Scala2Virtualized),$plain2
old java$annotation$or$even fluent$interfaces!
• API$2>$fluent$API$2>$staging (LMS)
• annotation$2>$active$annotation
External DSLs vs. Internal DSLs
A:Journey:Through:MDE,:DSL:and:SLE H Benoit'Combemale (INRIA'and'Univ.'Rennes'1)'H July'2nd,'2015 ! 23
31. Software'Language Engineering'(SLE)
Jean!Marc'Jézéquel,'David'Mendez,'Thomas'Degueule,'Benoit'Combemale,'Olivier'
Barais,'"When Systems Engineering$Meets Software$Language Engineering,"'In'
Complex Systems Design'&'Management'(CSD&M'14),'Springer,'2014.
All'about'“family'of'languages”!!'!
Core
Query
Language
Action
Language
Constraint
LanguageFSM
H FSM System
ODE
FSM
Activity
Language Inheritance
Subtyping, Model Viewpoint,
Generic metaprogramming
Globalization of DSLs
HFSM
UML
Rhapsody
Stateflow
HT FSM
Language Modularization and Composition,
Language Variability Management
A:Journey:Through:MDE,:DSL:and:SLE H Benoit'Combemale (INRIA'and'Univ.'Rennes'1)'H July'2nd,'2015 ! 31
33. OPEN WORLD
Feature A
Feature B Feature B
F. D F. D F. D F. D F. D F. D
Variability model
L1 L2
L3 L4
L1
L3 L4L2
CLOSED WORLD
Language Manipulation
• Evolution
• Extension
• Restriction
• Customization
• Assembly
Variability-based
development model for
DSLs
• Variability modeling
• Components-based
languages development
Families of Languages
Variants
Language
derivation
L6
Typing Theory
for Agile Modeling
• Language interfaces
• Model polymorphism
• Viewpoints management
MELANGE
A:Journey:Through:MDE,:DSL:and:SLE H Benoit'Combemale (INRIA'and'Univ.'Rennes'1)'H July'2nd,'2015 ! 33