Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Domänenspezifische Sprachen
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Natalia Ossipova
October 05, 2013
Programming
24
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Domänenspezifische Sprachen
Natalia Ossipova
October 05, 2013
Other Decks in Programming
See All in Programming
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
270
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
220
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2k
残高管理から台帳サービスへの進化
artoy
1
200
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
640
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
290
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
220
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.2k
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
200
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
270
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
Featured
See All Featured
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
410
The Limits of Empathy - UXLibs8
cassininazir
2
720
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
Writing Fast Ruby
sferik
630
63k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
570
A Modern Web Designer's Workflow
chriscoyier
699
190k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
Designing for Timeless Needs
cassininazir
1
530
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
570
ラッコキーワード サービス紹介資料
rakko
1
5.3M
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
890
Transcript
Macoun ⌘
Domänenspezifische Sprachen Natalia Ossipova @nossipova
Dieser Vortrag kann Spuren von Java enthalten.
Domain-specific language (noun): a computer programming language of limited expressiveness
focused on a particular domain. Martin Fowler Domänenspezifische Sprache
Domänenspezifische Sprache •Fachsprache einer Domäne •Formal •Deklarativ
Domäne
Fachlich vs. technisch
Domäne Kunde Konto Kontostand Überweisung Lastschrift Sparbuch Kreditkarte Banking
Domäne Datenbank Business-Logik User Interface Komponente Schnittstelle Software-Architektur
Domäne PBXFileReference PBXProject PBXBuildFile PBXFrameworksBuildPhase PBXTargetDependency PBXNativeTarget Konfiguration
Domäne hexproof flying haste reach tap enchant trample Spiele equip
Domänenspezifische Sprachen
Textuell vs. grafisch
Textuelle DSLs CSS SQL AppleScript
UML Grafische (visuelle) DSLs
Demo: Scratch
Intern vs. extern
Interne DSLs •Eingebettet in eine bestehende Sprache •Syntax der Host-Sprache
•DSL-fähige Sprachen: •Ruby •Template-Metaprogrammierung in C++ •LISP
Externe DSLs •Benutzerdefinierte Syntax und Semantik Text Text entity Conference
title Text attendees Person* speakers Speaker* entity Person name Text entity Speaker : Person sessions Session* entity Session title Text
Wozu braucht man sie?
Nutzen •Kommunikation mit Domänenexperten •Code-Generierung und Interpretation! •Lebendige Dokumentation
DSL entwickeln
DSL entwickeln Lexer Parser Syntaxbaum Parsergenerator
ParseKit •Angelehnt an ANTLR •ParseKit kann: •Strings tokenisieren •High-Level-Sprachen parsen
•Parser aus (E)BNF-Grammatiken generieren
(Erweiterte) Bakus-Naur-Form •Sequenz “here” “we” “go” •Zuweisung “=” •Alternative “|”
•optionales Element “?” •Wiederholung 0 bis ∞ “*” und 1 bis ∞ “+“
Demo: ParseKit Text Text book " title "Domain-Specific Languages" "
authors Martin Fowler, Rebecca Parsons " ISBN 0321712943 " chapter "DLS: Chapter 1" " chapter "DSL: Chapter 2" book " title "Test-Driven iOS Development" " authors Graham Lee " ISBN 0321774183 " chapter "TDiOSD: Chapter 1" " chapter "TDiOSD: Chapter 2"
Über den Tellerrand
Cross-Platform IDE-Integration Parser Linker Compiler Interpreter Scoping Validierung Eclipse-/Java-basiert :-(
Applause DSL und Code-Generatoren für: •iOS •Android •Windows Phone •Mobile
Web auf Basis von Google App Engine (GAE)
Demo: Applause
Fragen?
Vielen Dank www.nataliaossipova.net @nossipova
Macoun ⌘