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
Domänenspezifische Sprachen mit Xtext
Search
Markus Amshove
November 04, 2016
Programming
0
1.7k
Domänenspezifische Sprachen mit Xtext
Markus Amshove
November 04, 2016
Tweet
Share
More Decks by Markus Amshove
See All by Markus Amshove
Domänenspezifische Sprachen: Sprich domänisch!
markusamshove
0
510
Other Decks in Programming
See All in Programming
Deno Tunnel を使ってみた話
kamekyame
0
260
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
6
4k
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
190
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.4k
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
0
190
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
490
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
140
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
480
Vibe codingでおすすめの言語と開発手法
uyuki234
0
130
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
110
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
660
愛される翻訳の秘訣
kishikawakatsumi
3
350
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
22k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
2
68
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
130
Designing for Performance
lara
610
69k
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
2.8k
Designing for Timeless Needs
cassininazir
0
96
YesSQL, Process and Tooling at Scale
rocio
174
15k
The Language of Interfaces
destraynor
162
25k
SEO for Brand Visibility & Recognition
aleyda
0
4.1k
How to Ace a Technical Interview
jacobian
281
24k
Transcript
Domänenspezifische Sprachen mit Xtext
1.Arten von Programmiersprachen 2.Vorteile von DSLs 3.Was ist Xtext? 4.Vorführung
GPL (General Purpose Language)
GPL (General Purpose Language) { C# C++
GPL (General Purpose Language) DSL (Domain Specific Language) { C#
C++
GPL (General Purpose Language) DSL (Domain Specific Language) { C#
C++ { SQL
GPL
None
Vorteile
Vorteile Redundanzminderung
Vorteile Redundanzminderung Abstraktion
Vorteile Redundanzminderung Abstraktion Domänenbegriffe
Vorteile Redundanzminderung Abstraktion Domänenbegriffe Moderne Entwicklung
None
None
None
None
http://xtext.org
None
Open-Source
Open-Source Eclipse Foundation
Open-Source Eclipse Foundation Gängige Entwicklungsumgebungen
Infrastruktur
Infrastruktur
Infrastruktur
IDE-Integration
IDE-Integration
IDE-Integration
None
Was muss man dafür tun?
Grammatik
Grammatik Model: greetings+=Greeting*; Greeting: 'Hello' name=ID '!';
Grammatik Sprachinfrastruktur
Grammatik Sprachinfrastruktur IDE-Integration
Grammatik Sprachinfrastruktur IDE-Integration
Grammatik Sprachinfrastruktur IDE-Integration
Grammatik Sprachinfrastruktur IDE-Integration
Grammatik Sprachinfrastruktur IDE-Integration
Grammatik Language Server Protocol Sprachinfrastruktur IDE-Integration
Grammatik Language Server Protocol Sprachinfrastruktur IDE-Integration [ ]
Grammatik Language Server Protocol Sprachinfrastruktur IDE-Integration [ ]
Vorführung
Domäne
Domänenbegriffe
Domänenbegriffe Auswahl
Domänenbegriffe Auswahl Freitext
Domänenbegriffe Auswahl Freitext Verteilung
Grammatik
Grammatik FragebogenDatei: frageboegen+=Fragebogen* ;
FragebogenDatei: frageboegen+=Fragebogen* ; Parserregel
FragebogenDatei: frageboegen+=Fragebogen* ; Parserregel Feature(Attribut)
FragebogenDatei: frageboegen+=Fragebogen* ; Parserregel Feature(Attribut)
FragebogenDatei: frageboegen+=Fragebogen* ; 0.. ∞
Fragebogen: 'Fragebogen' name=STRING abschnitte+=Abschnitt+;
Fragebogen: 'Fragebogen' name=STRING abschnitte+=Abschnitt+; Keyword
Fragebogen: 'Fragebogen' name=STRING abschnitte+=Abschnitt+; Keyword 1.. ∞
Abschnitt: 'Abschnitt' name=STRING fragen+=Frage+ ; Frage: Auswahl | Verteilung |
Freitext ;
Abschnitt: 'Abschnitt' name=STRING fragen+=Frage+ ; Frage: Auswahl | Verteilung |
Freitext ; Oder
Abschnitt: 'Abschnitt' name=STRING fragen+=Frage+ ; Frage: Auswahl | Verteilung |
Freitext ;
Verteilung: 'Verteilung' Artikel? name=STRING 'mit' verteilbar+=STRING+; Artikel: ('an' | 'für'
| 'aus' | 'von');
Verteilung: 'Verteilung' Artikel? name=STRING 'mit' verteilbar+=STRING+; Artikel: ('an' | 'für'
| 'aus' | 'von'); Optional
None
None
Demo