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
1.1k
Android insights
coolya
0
150
IoT with extensible C - Democamp
coolya
0
140
Internet of thing with extensible C
coolya
0
150
What if we could change programming languages?
coolya
0
2.7k
mbeddr on aruino
coolya
0
290
Other Decks in Programming
See All in Programming
CSC307 Lecture 08
javiergs
PRO
0
670
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
1.3k
CSC307 Lecture 07
javiergs
PRO
0
550
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
430
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
580
AI巻き込み型コードレビューのススメ
nealle
2
330
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
290
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
300
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
740
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1k
Featured
See All Featured
What does AI have to do with Human Rights?
axbom
PRO
0
2k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Navigating Weather and Climate Data
rabernat
0
110
The Curse of the Amulet
leimatthew05
1
8.6k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
260
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
440
From π to Pie charts
rasagy
0
120
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?