Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter...
Transcript of Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter...
![Page 1: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/1.jpg)
Domain Specific - a Binary Decision?
Markus VoelterIndependent/itemis
Bernhard MerkleSICK AG
![Page 2: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/2.jpg)
![Page 3: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/3.jpg)
Context &Problem
![Page 4: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/4.jpg)
Viewpoints
![Page 5: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/5.jpg)
Viewpointssuitable
abstractions
notationsfor each
and
![Page 6: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/6.jpg)
Viewpoints
Integrated
references
transitions
symbolic
seamlessand
via
![Page 7: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/7.jpg)
ViewpointsDomain Specific
custompurpose-built
create/include
![Page 8: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/8.jpg)
Viewpoints
CustomNotations
businessexpert integration
real
Domain Specific
![Page 9: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/9.jpg)
ViewpointsGeneral Purpose
predefinedlibrary
configure
![Page 10: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/10.jpg)
Viewpoints
C
LEGO Robot Control
General Purpose
Domain Specific
![Page 11: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/11.jpg)
Viewpoints
C
LEGO Robot Control
Components
State Machines
Sensor Access
General Purpose
Domain Specific
![Page 12: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/12.jpg)
Modeling Tools
Programming Tools!=
Different Worlds
![Page 13: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/13.jpg)
Modeling Tool
Modeling Tool!=
Different Worlds
![Page 14: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/14.jpg)
ConfigurationXOR
OR
x
x
x
From a given set of
configuration options you
select a subset.
Constraints between
configuration options limits
valid combinations
![Page 15: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/15.jpg)
Construction
1 2
Bl 3
A
You define a language that can
be used to define a basically an
unlimited number of variants
You then define a sentence in
that language that describes a
particular variant
![Page 16: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/16.jpg)
Configuration
Construction
Feature Models
Domain Specific Languages
![Page 17: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/17.jpg)
Configuration
Construction
Feature Models
Domain Specific Languages
![Page 18: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/18.jpg)
![Page 19: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/19.jpg)
SolutionApproach
![Page 20: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/20.jpg)
We don‘t want to
we want tomodel,
program!
![Page 21: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/21.jpg)
We don‘t want to
we want tomodel,
program!… at different levels of abstaction
… from different viewpoints
… integrated!
![Page 22: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/22.jpg)
We don‘t want to
we want tomodel,
program!… with different degrees of
… with suitable notations
… with suitable expressiveness
domain-specificity
![Page 23: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/23.jpg)
We don‘t want to
we want tomodel,
program!
precise and tool processableAnd always:
![Page 24: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/24.jpg)
![Page 25: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/25.jpg)
L
ab
c
d
e
f
gh
i
j
k
m
n
o
with many first class concepts!
Big Language?
![Page 26: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/26.jpg)
L
l
Small Language?
and poweful conceptswith a few, orthogonal
![Page 27: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/27.jpg)
my L
a b c
d e f
g h i
j k l
Modular Language
composable conceptswith many optional,
![Page 28: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/28.jpg)
Like frameworksand libraries,
Modular Language
![Page 29: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/29.jpg)
Like frameworksand libraries,
but with syntaxand IDE support
Modular Language
![Page 30: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/30.jpg)
![Page 31: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/31.jpg)
ProjectionalEditing
![Page 32: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/32.jpg)
Parser-basedtext… to tree… to text
![Page 33: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/33.jpg)
Projectionaltree… to text-lookalike (editor)… to other trees … **+… to text
Tree
![Page 34: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/34.jpg)
Programming as Modeling
… (Mostly) GraphicalNotations
… Abstract Syntax Storage
… Projecting Editors
… Different editableviews for model
![Page 35: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/35.jpg)
Programming as Modeling
… (Mostly) Graphical Any kind ofNotations
… Abstract Syntax Storage
… Projecting Editors
… Different editableviews for model
![Page 36: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/36.jpg)
Language
There‘s no parsing.
Unique Language Element Identity.
Unlimted language composition.
Composition
![Page 37: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/37.jpg)
Textual
Graphical
Semi-Graphical
treated the same
can be mixed
like ASCII
box & line
mathematical
Flexible
Notations
![Page 38: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/38.jpg)
Automatic
IDE Extensiontool support is inherent
for languages build withprojectional tools
language definition
IDE definitionimplies
![Page 39: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/39.jpg)
MultipleNotations
… for the same concepts
e.g. in different contextsor for different tasks
![Page 40: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/40.jpg)
PartialProjections
… different views… for different roles/people… only a particular variant
![Page 41: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/41.jpg)
ProgramsLive
think: spreadsheet
a change to one part of programcan lead to (dependent) changesin other parts
![Page 42: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/42.jpg)
Tree Editing
… try to make it feel like text
… takes some getting used tobut: for more flexible notations a more general editing paradigm is needed
… is different from editing text
![Page 43: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/43.jpg)
InfrastructureIntegration
… diff/merge must be in tool
… existing text tools don‘t work
… storage is not text
![Page 44: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/44.jpg)
ProprietaryTools
… no interop
… no standards
![Page 45: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/45.jpg)
![Page 46: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/46.jpg)
JetBrainsMPS
![Page 47: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/47.jpg)
Q3 2009released in
1.5currently
![Page 48: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/48.jpg)
Apache 2.0Open Source under
![Page 49: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/49.jpg)
![Page 50: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/50.jpg)
ExampleScenario
![Page 51: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/51.jpg)
Two Classes in Embedded SystemsDevelopment
(yes, this is a slight simplification)
![Page 52: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/52.jpg)
Incremental Extensionof
![Page 53: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/53.jpg)
Incremental Extensionof Components
TasksState MachinesPhysical UnitsSpecial Data Types
![Page 54: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/54.jpg)
Incremental Extensionof
syntacticallyand semanticallyintegrated
![Page 55: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/55.jpg)
Incremental Extensionof
extensible withdomain-specificconstructs (DSLs)
![Page 56: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/56.jpg)
Demo
![Page 57: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/57.jpg)
The End.
Markus VoelterIndependent/itemis
Bernhard MerkleSICK AG
![Page 58: Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis voelter@acm.org Bernhard Merkle SICK AG bernhard.merkle@gmail.com Context](https://reader034.fdocuments.us/reader034/viewer/2022050501/5f937183c609ce4bf44694da/html5/thumbnails/58.jpg)
Language Extension and Composition with Language Workbenches
The End.