SlideShare a Scribd company logo
Modeling and Programming
isn‘t it all the same?




                            Markus Voelter
                         independent/itemis
                           voelter@acm.org

                                 www.voelter.de
                         voelterblog.blogspot.de
                                 @markusvoelter
                                 +Markus Voelter
Modelling and Programming: Isn’t it all the same?
We don‘t want to
    model,
 we want to
      program!
We don‘t want to
      model,
 we want to
        program!
  … at different levels of abstraction
  … from different viewpoints
  … integrated!
We don‘t want to
     model,
 we want to
        program!
  … with different degrees of
           domain-specificity
  … with suitable notations
  … with suitable expressiveness
We don‘t want to
     model,
 we want to
        program!
 And always:
     precise and tool processable
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
beforeFlight                                     crashed
                                       reset
next [alt > 0]                                                    next [alt == 0 && speed == 0]


                                                                             airborne



                  flying



                         next [alt == 0 && speed > 0]



                 landing                                                landed
                                  next [alt == 0 && speed == 0]
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Modelling and Programming: Isn’t it all the same?
Different Worlds
    Programming Tools
           !=
       Modeling Tools
Different Worlds
      Modeling Tool
           !=
       Modeling Tool
Different Worlds
    Mix Models and Programs
Different Worlds
    Mix Models and Programs
     AST Navigation & Query
Different Worlds
    Mix Models and Programs
     AST Navigation & Query
      Integration of 3GL code
Different Worlds
    Mix Models and Programs
     AST Navigation & Query
      Integration of 3GL code
            Code Constraints
Modelling and Programming: Isn’t it all the same?
Language
 Workbench
      (Martin Fowler)
Language
 Workbench   (Martin Fowler)




   Freely
    define
 languages and
       integrate
                 them
Language
 Workbench(Martin Fowler)




  use
  persistent
    abstract ?
    representation
Language
 Workbench      (Martin Fowler)




 language ::=
       schema
       + editors
    + generators
Language
 Workbench
         (Martin Fowler)




            ?
  projectional
       editing
Language
 Workbench   (Martin Fowler)




  persist
 incomplete
        or
 contradictory
        information
Language
 Workbench     (Martin Fowler)


  powerful
   editing
     testing
  refactoring
                 +
    debugging
   groupware
 language definition
       implies
          IDE definition
Language
 Workbench     (Martin Fowler)




support for
 „classical“
    programming
               +
 „classical“ and
    modeling
Modelling and Programming: Isn’t it all the same?
Big Language?
                   a
               o       b
           n               c

      m                        d

       k
                   L           e

           j               f
               i       g
                   h

with many first class concepts!
Small Language?
           
                  
           L


              
with a few, orthogonal
and poweful concepts
Modular Language
                   a   b   c

                    d   e   f
         my L
                    g   h   i

                    j   k   l

          
  with many optional,
 composable concepts
Modular Language

  Like frameworks
  and libraries,
Modular Language

  Like frameworks
  and libraries,
         but with syntax
        and IDE support
Modelling and Programming: Isn’t it all the same?
Model
 A schematic description of a
      system, theory, or
phenomenon that accounts for
    its known or inferred
 properties and may be used
   for further study of its
        characteristics
                www.answers.com/topic/mode
                                         l
Model
  A representation of a set of
         components of a
   process, system, or subject
 area, generally developed for
understanding, analysis, improve
ment, and/or replacement of the
             process
                  www.ichnet.org/glossary.htm
Model

an abstraction or
simplification of
     reality

          ecosurvey.gmu.edu/glossary.ht
                                     m
Model

an abstraction or
simplification of
     reality
   a model is always
  relative to something
Model

an abstraction or
simplification of
 another model.
Model

an abstraction or
simplification of
 another model.
   “model” is a role.
Role?

    Person            Car


Owner        Driver
Role?

           driver

  Person   owner    Car
Role?

           driver

  Person   owner      Car

   A role characterizes a
   relationship between two
   entities.
Role?


            model
  Program           Program

   A role characterizes a
   relationship between two
   entities.
Role?


            model
  Program   abstract   detailed
                                  Program
Role?


            model
  Program   abstract   detailed
                                  Program
                                  model abstract

                                         detailed



                                  Program
Modelling and Programming: Isn’t it all the same?
A Concrete
Example System:
mbeddr
Modelling and Programming: Isn’t it all the same?
An extensible C
with support for
formal methods,
  requirements
     and PLE.
IDE for Everything
A debugger
for all of that
Modelling and Programming: Isn’t it all the same?
SDK for building
   your own
   Language
  Extensions!
IDE for Everything


      JetBrains

      MPS
      Open Source
      Language Workbench
Modelling and Programming: Isn’t it all the same?
Challenges
in embedded software
     development
Abstraction
  without
Runtime Cost
C considered
   unsafe
Program
Annotations
Static Checks
     and
Verification
Product Lines
    and
Requirement
   Traces
Separate, hard to
 integrate Tools
Modelling and Programming: Isn’t it all the same?
mbeddr C
 Solution
Philosophy
Extension
Extension




   more specialized domains
 more specialized languages
Extension
Extension




   more specialized domains
 more specialized languages
Extension
Extension




   more specialized domains
 more specialized languages
Extension
Extension




   more specialized domains
 more specialized languages
Modelling and Programming: Isn’t it all the same?
Incremental Trafo
Incremental Trafo
Incremental Trafo
Incremental Trafo
Modelling and Programming: Isn’t it all the same?
Language Extension
Language Extension
Language Extension
Modelling and Programming: Isn’t it all the same?
DEMO
Modelling and Programming: Isn’t it all the same?
Status
    and
Availability
http://mbeddr.co
        m
Developed within




   LWES
   Language Workbenches
    for
          Embedded Systems




                        gefördert durch das BMBF
                       Förderkennzeichen 01|S11014
Open Source
   (EPL)
support for
graphical 2013
integration
   in 2013
First
Commercial
  Project
2 Developers, 4 months
  existing source code
  30.000 – 50.000 LOC
      Product Line
 Certification Required
Systematic
Study with
   BMW
The “Pacemaker”
   Challenge
Modelling and Programming: Isn’t it all the same?
An extensible version of the
 C programming language
 for Embedded Programming

     http://mbeddr.co
             m
                              C the Difference – C the Future

gefördert durch das BMBF
Förderkennzeichen 01|S11014
Some of this material is
based on this book:

http://dslbook.org
available Feb 2013




                           www.dslbook.org

More Related Content

PDF
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
PDF
Practical Models in Practice
PPTX
Domain-Specific Languages
PPTX
Qcon2011 functions rockpresentation_scala
PPTX
Oop2011 actor presentation_stal
PPTX
Real world DSL - making technical and business people speaking the same language
PDF
Session 2 - Objective-C basics
PDF
Drupaljam xl 2019 presentation multilingualism makes better programmers
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Practical Models in Practice
Domain-Specific Languages
Qcon2011 functions rockpresentation_scala
Oop2011 actor presentation_stal
Real world DSL - making technical and business people speaking the same language
Session 2 - Objective-C basics
Drupaljam xl 2019 presentation multilingualism makes better programmers

What's hot (20)

PPTX
Chapter 2 c#
PDF
Session 3 - Object oriented programming with Objective-C (part 1)
PDF
C# Summer course - Lecture 2
PPTX
PPT
C++ Programming Course
PPT
OOP in C++
KEY
2011 10-24-initiatives-tracker-launch-v1.0
KEY
A fresh look at graphical editing
ODP
Ppt of c++ vs c#
PDF
An Introduction To C++Templates
PPTX
PDF
Object oriented programming c++
PDF
Decaf language specification
PDF
C++ Training
PDF
Object Oriented Programming using C++ Part III
PPT
Glimpses of C++0x
PPTX
c# usage,applications and advantages
PPT
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
ODP
Ppt of c vs c#
PDF
LEARN C#
Chapter 2 c#
Session 3 - Object oriented programming with Objective-C (part 1)
C# Summer course - Lecture 2
C++ Programming Course
OOP in C++
2011 10-24-initiatives-tracker-launch-v1.0
A fresh look at graphical editing
Ppt of c++ vs c#
An Introduction To C++Templates
Object oriented programming c++
Decaf language specification
C++ Training
Object Oriented Programming using C++ Part III
Glimpses of C++0x
c# usage,applications and advantages
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
Ppt of c vs c#
LEARN C#
Ad

Viewers also liked (20)

PDF
Services and Models in a Large IT System
PDF
Choose'10: Jean-Marie Favre - Domain and Technique Specific Languages – A Jou...
PDF
Choose'10: Uwe Zdun - Compliance in service-oriented architectures: A model-d...
PDF
Choose'10: Stephane Ducasse - Powerful DSL engineering in Smalltalk
PPT
Security patterns and model driven architecture
PPTX
CPI, Inflation for Belize, July 2014 (PowerPoint)
PDF
Continuous Architecting of Stream-Based Systems
PDF
Agile tour 2011 ralph jocham - scrum primer
PDF
Ralph jocham agile portfolio based release trains
PDF
Ralph Jocham The Risks Of Scrum
PDF
Ralph Jocham The Risks Of Scrum Handout
PPTX
Dissecting State-of-the-Art Android Malware Using Static and Dynamic Analysis
PDF
PPTX
Fármacos del Sistema Nervioso Autónomo
PPTX
SEO, Influencers, or Quality - What's Your Trump Card in Content Marketing?
PDF
Denker - Pharo: Present and Future - 2009-07-14
PDF
Communicating Your Design - UXSofia 2014
PDF
Getting Started With Apex REST Services
PPTX
Cart Abandonment Case Study DEMCO Silverpop Adobe
PPTX
Agentes atmosfericos del planeta
Services and Models in a Large IT System
Choose'10: Jean-Marie Favre - Domain and Technique Specific Languages – A Jou...
Choose'10: Uwe Zdun - Compliance in service-oriented architectures: A model-d...
Choose'10: Stephane Ducasse - Powerful DSL engineering in Smalltalk
Security patterns and model driven architecture
CPI, Inflation for Belize, July 2014 (PowerPoint)
Continuous Architecting of Stream-Based Systems
Agile tour 2011 ralph jocham - scrum primer
Ralph jocham agile portfolio based release trains
Ralph Jocham The Risks Of Scrum
Ralph Jocham The Risks Of Scrum Handout
Dissecting State-of-the-Art Android Malware Using Static and Dynamic Analysis
Fármacos del Sistema Nervioso Autónomo
SEO, Influencers, or Quality - What's Your Trump Card in Content Marketing?
Denker - Pharo: Present and Future - 2009-07-14
Communicating Your Design - UXSofia 2014
Getting Started With Apex REST Services
Cart Abandonment Case Study DEMCO Silverpop Adobe
Agentes atmosfericos del planeta
Ad

Similar to Modelling and Programming: Isn’t it all the same? (20)

PPTX
Domain Specific Language Design
PDF
IN4308 1
PPTX
A Grand Unified Theory of Software
PDF
Platforms and the Semantic Web
PPTX
From Programming to Modeling And Back Again
PPT
Trends in Programming Technology you might want to keep an eye on af Bent Tho...
PDF
Programming Languages: some news for the last N years
PDF
Trends and future of C++: Evolving a systems language for performance - by Bj...
PPTX
OOP, API Design and MVP
PDF
AADL Overview: Brief and Pointless
PDF
Intro to Software Engineering for non-IT Audience
PPTX
Univ of va intentional introduction 2013 01-31
PPT
Software engineering
PPT
Software engineering
PDF
Fusing Modeling and Programming into Language-Oriented Programming
PDF
Formal Verification of Programming Languages
PPTX
Solid OOPS
PDF
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
PPT
01 c
PDF
Software Engineering In PHP
Domain Specific Language Design
IN4308 1
A Grand Unified Theory of Software
Platforms and the Semantic Web
From Programming to Modeling And Back Again
Trends in Programming Technology you might want to keep an eye on af Bent Tho...
Programming Languages: some news for the last N years
Trends and future of C++: Evolving a systems language for performance - by Bj...
OOP, API Design and MVP
AADL Overview: Brief and Pointless
Intro to Software Engineering for non-IT Audience
Univ of va intentional introduction 2013 01-31
Software engineering
Software engineering
Fusing Modeling and Programming into Language-Oriented Programming
Formal Verification of Programming Languages
Solid OOPS
Why Extension Programmers Should Stop Worrying About Parsing and Start Thinki...
01 c
Software Engineering In PHP

Modelling and Programming: Isn’t it all the same?