$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
mbeddr & MPS overview
Search
Kolja Dummann
March 14, 2014
Programming
0
150
mbeddr & MPS overview
A high level overview about mbeddr and the Meta Programming System bei JetBrains
Kolja Dummann
March 14, 2014
Tweet
Share
More Decks by Kolja Dummann
See All by Kolja Dummann
Fsharp
coolya
0
1k
Android insights
coolya
0
140
IoT with extensible C - Democamp
coolya
0
130
Internet of thing with extensible C
coolya
0
140
What if we could change programming languages?
coolya
0
2.7k
mbeddr on aruino
coolya
0
280
Other Decks in Programming
See All in Programming
Microservices Platforms: When Team Topologies Meets Microservices Patterns
cer
PRO
1
920
Querying Design System デザインシステムの意思決定を支える構造検索
ikumatadokoro
1
1.2k
ローターアクトEクラブ アメリカンナイト:川端 柚菜 氏(Japan O.K. ローターアクトEクラブ 会長):2720 Japan O.K. ロータリーEクラブ2025年12月1日卓話
2720japanoke
0
480
AIコーディングエージェント(skywork)
kondai24
0
120
AI時代もSEOを頑張っている話
shirahama_x
0
230
TypeScript 5.9 で使えるようになった import defer でパフォーマンス最適化を実現する
bicstone
1
1k
認証・認可の基本を学ぼう前編
kouyuume
0
160
AIと協働し、イベントソーシングとアクターモデルで作る後悔しないアーキテクチャ Regret-Free Architecture with AI, Event Sourcing, and Actors
tomohisa
5
18k
俺流レスポンシブコーディング 2025
tak_dcxi
13
7.8k
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
470
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
210
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
3
1.1k
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Code Review Best Practice
trishagee
73
19k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Unsuck your backbone
ammeep
671
58k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Bash Introduction
62gerente
615
210k
Practical Orchestrator
shlominoach
190
11k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Transcript
mbeddr & MPS A high level overview
Meta Programming System
Open Source Language Workbench
Developed since 2003
Apache 2.0 License
Projectional Editor
int i = 42 + 23;
int i = 42 + 23;
LocalVarDecl Name = i int i = 42 + 23;
LocalVarDecl Name = i IntType Type int i = 42
+ 23;
LocalVarDecl Name = i IntType Type Plus Init int i
= 42 + 23;
LocalVarDecl Name = i IntType Type Plus Init NumberLiteral Name
= 42 Left int i = 42 + 23;
LocalVarDecl Name = i IntType Type Plus Init NumberLiteral Name
= 42 Left NumberLiteral Value = 23 Right int i = 42 + 23;
Abstract Syntax Tree Concrete Syntax
Abstract Syntax Tree Concrete Syntax
Abstract Syntax Tree Concrete Syntax
Abstract Syntax Tree Concrete Syntax
Abstract Syntax Tree Concrete Syntax
Abstract Syntax Tree Concrete Syntax
Abstract Syntax Tree Concrete Syntax
Abstract Syntax Tree Concrete Syntax
Samples for projectional editors • Word (word processors) • Drawing
tools (Photoshop etc) • DTP Tools • Webbrowsers
PROS
Mixing different notations
Mixing different notations
Mixing different notations
Mixing different notations
CONS
Harder to archive copy and paste Harder to make it
behave like expected
http://mbeddr.com
A Open Source Collection of integrated languages for embedded software
engineering
None
Core Plain C
Core Plain C Ext Components Statemachines Units
Core Plain C Ext Components Statemachines Units CC Requirements Documentation
PLE
Core Plain C Ext Components Statemachines Units CC Requirements Documentation
PLE Debugger
Core Plain C Ext Components Statemachines Units CC Requirements Documentation
PLE Analyses Debugger
Core Plain C Cleaned up C hidden pre processor enhanced
typesystem
Ext Components Statemachines Units Modularization of software decouple specification and
implementation improve testability
Ext Components Statemachines Units model state based behavior on its
natural abstraction improve readability due to less clutter verifiable with model checking
Ext Components Statemachines Units typesystem integration with C user defined
units no runtime overhead
CC Requirements Documentation PLE prose description of the system arbitrary
DSL to for structured data traceability with any mbeddr artifact
CC Requirements Documentation PLE LaTeX, HTML or Word documents form
requirements easy integration with real code
CC Requirements Documentation PLE support for feature models FM instances
are validated any artifact can be adapted to a variant
Debugger debug on the semantics of the DSL
How it works
None
Code
Code Generator
Code Generator
Code Generator Text (C)
Code Generator Text (C) Compiler
Extensibility
Possible Domains
Questions?