SlideShare a Scribd company logo
Markus Völter
voelter@acm.org
www.voelter.de
@markusvoelter
Envisioning Future
Language Workbenches
Where I come from I
Precision
Programming
!=
{
Formulas, Rules
Data Structures
Tables
Values
}
Performance
Scalability
Robustness
Deployment
+ Tests
All languages shown in this talk
are built with the open source
JetBrains MPS language workbench.
MPS Language Workbench
Language Workbench
Open Source, by Jetbrains
Very Expressive
Used for years in industry
Vast Experience
+ Refactorings, Find Usages, Syntax Coloring, Debugging, ...
MPS Language Workbench
Envisioning the Future of Language Workbenches
Envisioning the Future of Language Workbenches
Envisioning the Future of Language Workbenches
Envisioning the Future of Language Workbenches
Envisioning the Future of Language Workbenches
Envisioning the Future of Language Workbenches
Envisioning the Future of Language Workbenches
Envisioning the Future of Language Workbenches
Envisioning the Future of Language Workbenches
MPS: Notational Freedom
100% crucial for acceptance in domain!
Rabbit Hole
Modeling is more than diagrams!
Envisioning the Future of Language Workbenches
MPS: Language Composition
SPLE on Language Level!
Language Patterns
New Language
GPL Extension
Existing
Domain Notation
(Informal)
Formalization
Formalized
Language
Reuse GPL incl. Expressions and TS
Add/Embed DS-extensions
Compatible notational style
Reduce to GPL
Analyze Domain to find Abstractions
Define suitable, new notations
Rely on existing behavioral paradigm
Reuse standard expression language
Interpret/Generate to one or more
GPLs
Use existing notation from domain
Clean up and formalize
Generate/Interpret
Often import existing „models“
Language Extension Patterns
Language PatternsLanguage Flavours
Envisioning the Future of Language Workbenches
Language Concerns II
Realtime
Incremental
Transformations
1
Example Use Cases
• Mapping of system models to model checkers for
interactive verification of temporal properties
• Flattening of component hierarchies for type checking
• Flattening of hierarchical feature models for path
expression evaluation
• Weaving in of safety concerns into C code.
• Desugaring of business DSLs to a core functional
language; that core language would then feature an
interpreter, a compiler and an integration with an SMT
solver
What is Shadow Models?
Functional transformation language with
support for fixpoints
Incremental execution upon change of input
model
Unidirectional, but with first-class support for
lifting results
Fully integrated into MPS IDE
Code: https://github.com/JetBrains/MPS-extensions/tree/master/code/shadowmodels
Docs: https://jetbrains.github.io/MPS-extensions/extensions/shadowmodels/
Mechanics
Input Model
Shadow Model
...
‚
User edits the input model
A delta is propagated into the
transformation engine
A change on the shadow model
is produced
This triggers analysis or update
of results in Shadow Model
Results/messages are lifted
back to input level
Results are annotated to the
input model
Mightbestacked
Kf2
Core
Interpreter Generator Verifier
Sugar
DSL1 DSL2 DSL3
ShadowModels
• Minimal, Expressive Core
• Functional
• Reactive
• Sugar on top
• Interpter, Generator
and Verifier below
• Realtime-Trafo with
Shadow Models
Kf2
Semantics
2
LWBs Semantics
LWBs Semantics
LWBs Semantics
LWBs + Semantics
Semantics
Spec
Interpreter
Compiler
Verifier
Functional + Imperative + Reactive
The tools exist: K, Funcons, VDM
IDE
Deployment
Correctness
But there is very limited integration with LWBs.
Exception: Spoofax + Funcons
Semantics
Grow on (imperative) C
KernelF
Semantics
Functional
Interpreter
Reactive
Interpreter
Several
Projects / DSLs
Grow on Functional Language...
KernelF
Semantics
Solver
Model
Checker
Rules
Engine
Functional
Interpreter
Reactive
Interpreter
Several
Projects / DSLs
Lots of ideas J
Grow on Functional Language...
... and other Foundations.
Liveness
3
Beyond Balls and Trees
Not too much has happened since the legandary demo.
Overlay program execution data
Run tests and illustrate results in the background.
Instance-based programming (Jonathan Edwards)
That‘s it?
What else can we do?
Which LWB-support can be build?
Why do people like Excel?
Beyond Balls and Trees
Beyond Balls and Trees
Not too much has happened since the legandary demo.
Overlay program execution data
Run tests and illustrate results in the background.
Instance-based programming (Jonathan Edwards)
That‘s it?
What else can we do?
Which LWB-support can be build?
Debuggers
4
Debuggers
Different ones for different language paradigms
Functional => Tree
Imperative => Stepping
Declarative => ?
Debuggers
Different ones for different language paradigms
Functional => Tree
Imperative => Stepping
Declarative => ?
Often the (semantic reverse) of generation
it has to recover DSL semantics for watches, views, breakpoints
Related to simulators and „model animators“
No good tool support for building them!
Realtime vs. Post Mortem
Language
Parametrization
& Interfaces
5
Language Composition
Language Composition
Defining „abstract“ languages with holes
Example: State machines with pluggable expression language
What is the type of those that can be plugged in?
Language Types or Interfaces / Megamodels
Example: How do you descibe a „valid“ expression language?
Does this include execution sematics?
Envisioning the Future of Language Workbenches
Tool Concerns
III
Guidance
6
Applications
Applications Modeling Toolvs.
But not like that!
Novice Users need Guidance!
Applications Modeling Toolvs.
Novice Users need Guidance!
Applications Modeling Toolvs.
Novice Users need Guidance!
What am I working on? Roles
Applications Modeling Toolvs.
Novice Users need Guidance!
What am I working on?
What should I do next?
Roles
Tasks, Workflow
Applications Modeling Toolvs.
Novice Users need Guidance!
What am I working on?
What should I do next?
How complete is my model?
Roles
Tasks, Workflow
Model States
Applications Modeling Toolvs.
Novice Users need Guidance!
What am I working on?
What should I do next?
How complete is my model?
What is the quality of my model?
Roles
Tasks, Workflow
Model States
Metrics
Applications Modeling Toolvs.
Novice Users need Guidance!
What am I working on?
What should I do next?
How complete is my model?
What is the quality of my model?
Roles
Tasks, Workflow
Model States
Metrics
Defined jointly with the language.
Permissions
7
Permissions
Which user groups can see and edit which part of the model?
Can we define views for showing parts or aspects of models.
Proxies for „hidden details“?
Collaboration
8
Version Control Systems are a problem
Version Control Systems are a problem
https://git-man-page-generator.lokaltog.net/
But file-based version control is often not suitable.
Google Docs Style Collaboration
Realtime collaboration à la Google Docs
Language/structure-aware
Some level of transaction or isolation
Some version of branching.
The cloud
9
Cloud Backend
Local vs. „real“
Data Protection!
LSP-style frontend.
Browser Frontends
Become more App-Like
UI must be less like an IDE.
Things must look slicker!
It must be easier to integrate
with web apps that are
developed without the LWB:
Microservice-style modeling „services“
Integration on common backend and also with non-model apps.
Bring in M0
Language DSLs
Language
Model
User Data
M0
M1
M2
M3
Part of the LWB
Defined using the LWB
Should feel like IDE
Should be on the web
Not feel like IDE
Completely outside in generated App/DB
Bring in M0
Language DSLs
Language
Model
M3
Part of the LWB
User Data
Bring into joint repository.
Simplified Migration of models.
MetaEdit+ does this.
Bring in M0
Language DSLs
Language
Model
User Data
M3
Part of the LWB
Bring into joint repository.
Simplified Migration of models.
MetaEdit+ does this.
User-data also needs (incremental)
analysis, transformation and migration.
Should also scale indefinitely.
Why „externalize“ through generation etc?
Scale Down
10
Get Rid of IDE feel
Make it simpler.
https://alarmingdevelopment.org/
In terms of UI
But also in terms of paradigm.
Is functional or imperative the answer?
Make it modular(er).
Explain
Communicate
Convince
Educate
BBonus
Maybe more important!
!
How do we call
what we do?
How do we
de-risk tools?
What are the
right paradigms?
Computational
Thinking
End-User
programming
Case Studies

More Related Content

PDF
DSL development
Mikhail Barash
 
PDF
Worst practices for domain-specific modelling
Mikhail Barash
 
PDF
Build your own Language - Why and How?
Markus Voelter
 
PPT
Mps Presentation
guestaa97d9
 
PDF
Language Workbenches
Mikhail Barash
 
PDF
DSLs: what, why, how
Mikhail Barash
 
PDF
Zoo of domain-specific languages
Mikhail Barash
 
DSL development
Mikhail Barash
 
Worst practices for domain-specific modelling
Mikhail Barash
 
Build your own Language - Why and How?
Markus Voelter
 
Mps Presentation
guestaa97d9
 
Language Workbenches
Mikhail Barash
 
DSLs: what, why, how
Mikhail Barash
 
Zoo of domain-specific languages
Mikhail Barash
 

What's hot (20)

PPTX
Architecting Domain-Specific Languages
Markus Voelter
 
PDF
Swift vs. Language X
Scott Wlaschin
 
PPTX
Generic Tools - Specific Languages (PhD Defense Slides)
Markus Voelter
 
PPTX
Swift
Darshini Parikh
 
PPTX
Language-Oriented Business Applications
Markus Voelter
 
PDF
EMPEX LA 2018 - Inclusion Starts with Docs
Pete Gamache
 
PPTX
Domain Modeling & Full-Stack Web Development F#
Kevin Avignon
 
PDF
Beginning PHP
Mohammed Safwat
 
PPT
Lecture 10 software development
Jehanzaib Yousuf
 
PPT
Programming paradigm and web programming
Mohammad Kamrul Hasan
 
PDF
Programming Language Selection
Dhananjay Nene
 
PPTX
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
Istvan Rath
 
PDF
Sally Kleinfeldt - Plone Application Development Patterns
Vincenzo Barone
 
PDF
Professionalism and Industry Expectations related to IT industry
Tharindu Weerasinghe
 
PPTX
Dion computerprogramming
littlecricket07
 
PDF
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
Vincenzo Barone
 
PPTX
Top 10 programming languages
Aman Kumar
 
PPTX
DSL Best Practices
Markus Voelter
 
PDF
Ten compelling reasons to learn .net framework
JanBask Training
 
PDF
Design concerns for concrete syntax
Mikhail Barash
 
Architecting Domain-Specific Languages
Markus Voelter
 
Swift vs. Language X
Scott Wlaschin
 
Generic Tools - Specific Languages (PhD Defense Slides)
Markus Voelter
 
Language-Oriented Business Applications
Markus Voelter
 
EMPEX LA 2018 - Inclusion Starts with Docs
Pete Gamache
 
Domain Modeling & Full-Stack Web Development F#
Kevin Avignon
 
Beginning PHP
Mohammed Safwat
 
Lecture 10 software development
Jehanzaib Yousuf
 
Programming paradigm and web programming
Mohammad Kamrul Hasan
 
Programming Language Selection
Dhananjay Nene
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
Istvan Rath
 
Sally Kleinfeldt - Plone Application Development Patterns
Vincenzo Barone
 
Professionalism and Industry Expectations related to IT industry
Tharindu Weerasinghe
 
Dion computerprogramming
littlecricket07
 
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
Vincenzo Barone
 
Top 10 programming languages
Aman Kumar
 
DSL Best Practices
Markus Voelter
 
Ten compelling reasons to learn .net framework
JanBask Training
 
Design concerns for concrete syntax
Mikhail Barash
 
Ad

Similar to Envisioning the Future of Language Workbenches (20)

PDF
What's Missing in Language Workbenches
Markus Voelter
 
PDF
Introducing Language-Oriented Business Applications - Markus Voelter
JAXLondon2014
 
PDF
Fusing Modeling and Programming into Language-Oriented Programming
Markus Voelter
 
PDF
JetBrains MPS: Projectional Editing in Domain-Specific Languages
Oscar Rodriguez
 
PDF
Keynote at Code Generation 2014: The business cases of modeling and generators
Juha-Pekka Tolvanen
 
PDF
The Design, Evolution and Use of KernelF
Markus Voelter
 
PPTX
Who will create the languages of the future?
Jordi Cabot
 
PDF
The Final Frontier
jClarity
 
PPTX
Modelling and Programming: Isn’t it all the same?
CHOOSE
 
PPT
Software development... for all? (keynote at ICSOFT'2024)
miso_uam
 
PDF
The 3rd Intl. Workshop on NL-based Software Engineering
Sebastiano Panichella
 
PDF
Programming Languages: some news for the last N years
Ruslan Shevchenko
 
PDF
Climbing the tree of unreachable fruits, reusing processes
Universidade Estadual de Maringá
 
PDF
From the Boardroom to the Terminal_ Adapting to the Future - DevOpsBCN - Apr ...
devopsbcnmeetup
 
PDF
Introduction to the source{d} Stack
source{d}
 
PDF
Inventing The Next Business Programming Language
Richard Green
 
PPTX
From Programming to Modeling And Back Again
Markus Voelter
 
PDF
The 2nd Intl. Workshop on NL-based Software Engineering
Sebastiano Panichella
 
PDF
Languages for non-developers - invited keynote FedCSIS 2024
Juha-Pekka Tolvanen
 
PDF
Epic.NET: Processes, patterns and architectures
Giacomo Tesio
 
What's Missing in Language Workbenches
Markus Voelter
 
Introducing Language-Oriented Business Applications - Markus Voelter
JAXLondon2014
 
Fusing Modeling and Programming into Language-Oriented Programming
Markus Voelter
 
JetBrains MPS: Projectional Editing in Domain-Specific Languages
Oscar Rodriguez
 
Keynote at Code Generation 2014: The business cases of modeling and generators
Juha-Pekka Tolvanen
 
The Design, Evolution and Use of KernelF
Markus Voelter
 
Who will create the languages of the future?
Jordi Cabot
 
The Final Frontier
jClarity
 
Modelling and Programming: Isn’t it all the same?
CHOOSE
 
Software development... for all? (keynote at ICSOFT'2024)
miso_uam
 
The 3rd Intl. Workshop on NL-based Software Engineering
Sebastiano Panichella
 
Programming Languages: some news for the last N years
Ruslan Shevchenko
 
Climbing the tree of unreachable fruits, reusing processes
Universidade Estadual de Maringá
 
From the Boardroom to the Terminal_ Adapting to the Future - DevOpsBCN - Apr ...
devopsbcnmeetup
 
Introduction to the source{d} Stack
source{d}
 
Inventing The Next Business Programming Language
Richard Green
 
From Programming to Modeling And Back Again
Markus Voelter
 
The 2nd Intl. Workshop on NL-based Software Engineering
Sebastiano Panichella
 
Languages for non-developers - invited keynote FedCSIS 2024
Juha-Pekka Tolvanen
 
Epic.NET: Processes, patterns and architectures
Giacomo Tesio
 
Ad

More from Markus Voelter (17)

PPTX
Consulting
Markus Voelter
 
PDF
Deklarative Smart Contracts
Markus Voelter
 
PDF
Using language workbenches and domain-specific languages for safety-critical ...
Markus Voelter
 
PDF
How Domains Shape Languages
Markus Voelter
 
PDF
Why Modeling Suck Sucks
Markus Voelter
 
PDF
The future of DSLs - functions and formal methods
Markus Voelter
 
PDF
Lessons Learned from building mbeddr
Markus Voelter
 
PPTX
Generic Tools, Specific Laguages
Markus Voelter
 
PPTX
Domain Specific Language Design
Markus Voelter
 
PPTX
Faszination Segelfliegen
Markus Voelter
 
PPTX
Introduction To MDD
Markus Voelter
 
PPTX
Professional Podcasting Guide
Markus Voelter
 
PPTX
Fundamentals Of Software Architecture
Markus Voelter
 
PPTX
Architecture As Language
Markus Voelter
 
PPTX
Model-Driven Development in the context of Software Product Lines
Markus Voelter
 
PPTX
Trends In Languages 2010
Markus Voelter
 
PPT
Visual Profile - Markus Voelter, Jan 1, 2009
Markus Voelter
 
Consulting
Markus Voelter
 
Deklarative Smart Contracts
Markus Voelter
 
Using language workbenches and domain-specific languages for safety-critical ...
Markus Voelter
 
How Domains Shape Languages
Markus Voelter
 
Why Modeling Suck Sucks
Markus Voelter
 
The future of DSLs - functions and formal methods
Markus Voelter
 
Lessons Learned from building mbeddr
Markus Voelter
 
Generic Tools, Specific Laguages
Markus Voelter
 
Domain Specific Language Design
Markus Voelter
 
Faszination Segelfliegen
Markus Voelter
 
Introduction To MDD
Markus Voelter
 
Professional Podcasting Guide
Markus Voelter
 
Fundamentals Of Software Architecture
Markus Voelter
 
Architecture As Language
Markus Voelter
 
Model-Driven Development in the context of Software Product Lines
Markus Voelter
 
Trends In Languages 2010
Markus Voelter
 
Visual Profile - Markus Voelter, Jan 1, 2009
Markus Voelter
 

Recently uploaded (20)

PDF
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
PPTX
Presentation about variables and constant.pptx
safalsingh810
 
PPTX
Presentation about Database and Database Administrator
abhishekchauhan86963
 
PPTX
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
PPTX
Presentation about variables and constant.pptx
kr2589474
 
PDF
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
PDF
Key Features to Look for in Arizona App Development Services
Net-Craft.com
 
PDF
Protecting the Digital World Cyber Securit
dnthakkar16
 
PDF
vAdobe Premiere Pro 2025 (v25.2.3.004) Crack Pre-Activated Latest
imang66g
 
PPTX
Explanation about Structures in C language.pptx
Veeral Rathod
 
DOCX
Can You Build Dashboards Using Open Source Visualization Tool.docx
Varsha Nayak
 
PDF
Teaching Reproducibility and Embracing Variability: From Floating-Point Exper...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
PDF
Jenkins: An open-source automation server powering CI/CD Automation
SaikatBasu37
 
PPTX
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
 
PPTX
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
PDF
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
PDF
Bandai Playdia The Book - David Glotz
BluePanther6
 
PDF
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
PDF
Adobe Illustrator Crack Full Download (Latest Version 2025) Pre-Activated
imang66g
 
PPTX
The-Dawn-of-AI-Reshaping-Our-World.pptxx
parthbhanushali307
 
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
Presentation about variables and constant.pptx
safalsingh810
 
Presentation about Database and Database Administrator
abhishekchauhan86963
 
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
Presentation about variables and constant.pptx
kr2589474
 
Enhancing Healthcare RPM Platforms with Contextual AI Integration
Cadabra Studio
 
Key Features to Look for in Arizona App Development Services
Net-Craft.com
 
Protecting the Digital World Cyber Securit
dnthakkar16
 
vAdobe Premiere Pro 2025 (v25.2.3.004) Crack Pre-Activated Latest
imang66g
 
Explanation about Structures in C language.pptx
Veeral Rathod
 
Can You Build Dashboards Using Open Source Visualization Tool.docx
Varsha Nayak
 
Teaching Reproducibility and Embracing Variability: From Floating-Point Exper...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
Jenkins: An open-source automation server powering CI/CD Automation
SaikatBasu37
 
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
 
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
Bandai Playdia The Book - David Glotz
BluePanther6
 
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
Adobe Illustrator Crack Full Download (Latest Version 2025) Pre-Activated
imang66g
 
The-Dawn-of-AI-Reshaping-Our-World.pptxx
parthbhanushali307
 

Envisioning the Future of Language Workbenches