58
Domain Specific - a Binary Decision? Markus Voelter Independent/itemis [email protected] Bernhard Merkle SICK AG [email protected]

Domain Specific - a Binary Decision?Domain Specific - a Binary Decision? Markus Voelter Independent/itemis [email protected] Bernhard Merkle SICK AG [email protected] Context

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

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

Domain Specific - a Binary Decision?

Markus VoelterIndependent/itemis

[email protected]

Bernhard MerkleSICK AG

[email protected]

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
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
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

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

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

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

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

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
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

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

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

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

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

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
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
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

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

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

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
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

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

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

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

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

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

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

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

The End.

Markus VoelterIndependent/itemis

[email protected]

Bernhard MerkleSICK AG

[email protected]

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

Language Extension and Composition with Language Workbenches

The End.