Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
990
Android insights
coolya
0
130
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.6k
mbeddr on aruino
coolya
0
280
Other Decks in Programming
See All in Programming
デミカツ切り抜きで面倒くさいことはPythonにやらせよう
aokswork3
0
190
Web Components で実現する Hotwire とフロントエンドフレームワークの橋渡し / Bridging with Web Components
da1chi
3
1.9k
Goで実践するドメイン駆動開発 AIと歩み始めた新規プロダクト開発の現在地
imkaoru
4
660
CSC305 Lecture 04
javiergs
PRO
0
250
プログラマのための作曲入門
cheebow
0
540
プロダクト開発をAI 1stに変革する〜SaaS is dead時代で生き残るために〜 / AI 1st Product Development
kobakei
0
490
WebエンジニアがSwiftをブラウザで動かすプレイグラウンドを作ってみた
ohmori_yusuke
0
170
Go Conference 2025: Goで体感するMultipath TCP ― Go 1.24 時代の MPTCP Listener を理解する
takehaya
7
1.6k
非同期jobをtransaction内で 呼ぶなよ!絶対に呼ぶなよ!
alstrocrack
0
540
Back to the Future: Let me tell you about the ACP protocol
terhechte
0
130
なぜGoのジェネリクスはこの形なのか? Featherweight Goが明かす設計の核心
ryotaros
7
1k
Reduxモダナイズ 〜コードのモダン化を通して、将来のライブラリ移行に備える〜
pvcresin
2
690
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
53
9k
Building Adaptive Systems
keathley
43
2.8k
Thoughts on Productivity
jonyablonski
70
4.9k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Navigating Team Friction
lara
189
15k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
The Straight Up "How To Draw Better" Workshop
denniskardys
237
140k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
KATA
mclloyd
32
15k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
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?