Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
mbeddr & MPS overview
Kolja Dummann
March 14, 2014
Programming
0
71
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
620
Android insights
coolya
0
55
IoT with extensible C - Democamp
coolya
0
51
Internet of thing with extensible C
coolya
0
88
What if we could change programming languages?
coolya
0
2.2k
mbeddr on aruino
coolya
0
260
Other Decks in Programming
See All in Programming
読みやすいコード クラスメソッド 2022 年度新卒研修
januswel
0
2.9k
2022年のモダンCSS改
tonkotsuboy_com
24
17k
サーバーレスパターンから学ぶデータ分析基盤構築 / devio2022
kasacchiful
0
490
ストア評価「2.4」だったCOCOARアプリを1年で「4.4」になんとかした方法@Cloud CIRCUS Meetup #2
1901drama
0
180
ECサイトの脆弱性診断をいい感じにやりたい/OWASPKansaiNight_LT1_220727
owaspkansai
0
300
Pluggable Storage in PostgreSQL
sira
1
190
Dagger, la CI, autrement
guikingone
1
110
ベストプラクティス・ドリフト
sssssssssssshhhhhhhhhh
1
210
クラウド KMS の活用 / TOKYO BLOCKCHAIN TECH MEETUP 2022
odanado
PRO
0
190
Untangling Coroutine Testing (Droidcon Berlin 2022)
zsmb
2
490
段階的な技術的負債の解消方法.pdf
ko2ic
2
940
SwiftUIで「意図」を伝える / swiftui_intention
uhooi
2
150
Featured
See All Featured
How New CSS Is Changing Everything About Graphic Design on the Web
jensimmons
213
11k
A Modern Web Designer's Workflow
chriscoyier
689
180k
StorybookのUI Testing Handbookを読んだ
zakiyama
6
2.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
14
3.8k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_i
25
15k
Building Better People: How to give real-time feedback that sticks.
wjessup
344
17k
No one is an island. Learnings from fostering a developers community.
thoeni
9
1.3k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
212
20k
Rebuilding a faster, lazier Slack
samanthasiow
62
7.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
27
1.6k
Why Our Code Smells
bkeepers
PRO
324
55k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
351
21k
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?