SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Textuelle DSLs
Alter Wein in neuen
    Schläuchen?
                                     Peter Friese
                                        itemis




 (c) 2009 Peter Friese. Distributed under the EDL V1.0 - http://www.eclipse.org/org/documents/edl-v10.php
Probleme
Niedrige Effizienz
Sprachlosigkeit
Ausdrucksschwache Sprachen
Auswege

          MDSD



          DSLs



          DSLs
Eine Domain Specific Language (DSL)
 ist eine formale, durch Computer
 verarbeitbare Sprache, die einen
 bestimmten Gesichtspunkt bzw.
    Aspekt eines Softwaresystems
             ausdrückt.
Arten von DSLs




textuell                grafisch
Eine wahre Geschichte...
Eine wahre Geschichte...
Eine wahre Geschichte...




  “It’s old wine in new bottles!”
Eine wahre Geschichte...




         “It’s old wine in new bottles!”

“People have been writing their own languages for
                   decades”
Auswege

          MDSD



          DSLs



          DSLs
Alter Wein in neuen Schläuhen

            MDSD     Generatoren



            DSLs     Lexer / Parser



            DSLs     Lexer / Parser
Die Gute Alte Zeit™

1)Grammatik für ANTLR erstellen
2)Lexer / Parser generieren
3)Parser erstellt Parsetree
4)Parsetree in semantisches Model transformieren

5)Modell iterieren
6)Modellelemente an Template übergeben
Xtext - eine DSL...




. zur Beschreibung von DSLs
Brave New World
1)Grammatik für Xtext erstellen
2)Lexer / Parser / Metamodell / UI generieren
3)Parser erstellt Parsetree
4)UND semantisches Modell

5)Workflow steuert Iteration des Modells und
Templateverarbeitung
DEMO
Alter Wein?
Abstraktion
Effizienzsteigerung in der
    Toolentwicklung
@xtext
http://www.xtext.org

Weitere ähnliche Inhalte

Andere mochten auch

Le derouleur de papier q
Le derouleur de papier qLe derouleur de papier q
Le derouleur de papier qsandre07
 
Isolation fibre de bois gutex - ageka
Isolation fibre de bois   gutex - ageka Isolation fibre de bois   gutex - ageka
Isolation fibre de bois gutex - ageka Ageka
 
Reunion parent 22:05:12
Reunion parent 22:05:12Reunion parent 22:05:12
Reunion parent 22:05:12isauregastinne
 
Memoria electronica
Memoria electronicaMemoria electronica
Memoria electronicaelizaethpl
 
Présentation 071108 clubnet
Présentation 071108  clubnetPrésentation 071108  clubnet
Présentation 071108 clubnetalmaupoux
 
Lernen & Arbeiten 2.0 - Mobile Learning
Lernen & Arbeiten 2.0 - Mobile LearningLernen & Arbeiten 2.0 - Mobile Learning
Lernen & Arbeiten 2.0 - Mobile LearningTorsten Fell
 
3 e-cormerce
3   e-cormerce3   e-cormerce
3 e-cormercedeivi-sk
 
Bebes ondes-mode-d-emploi
Bebes ondes-mode-d-emploiBebes ondes-mode-d-emploi
Bebes ondes-mode-d-emploiRomu
 
Ils l'ont dit!!!
Ils l'ont dit!!!Ils l'ont dit!!!
Ils l'ont dit!!!Tchin-Tchin
 
GLUCONEOGENESIS BIOQUIMICA MEDICA 2
GLUCONEOGENESIS BIOQUIMICA MEDICA 2GLUCONEOGENESIS BIOQUIMICA MEDICA 2
GLUCONEOGENESIS BIOQUIMICA MEDICA 2Isac Pineda
 
CVX. Relaciones entre CVX y sj 2010
CVX. Relaciones entre CVX y sj 2010CVX. Relaciones entre CVX y sj 2010
CVX. Relaciones entre CVX y sj 2010infocatolicos
 
Enigme
EnigmeEnigme
EnigmeHelen
 
Zukunft des Mobilen Lernens mit Scribicon
Zukunft des Mobilen Lernens mit Scribicon Zukunft des Mobilen Lernens mit Scribicon
Zukunft des Mobilen Lernens mit Scribicon Torsten Fell
 
Viajando en el tiempo
Viajando en el tiempoViajando en el tiempo
Viajando en el tiempopedersenaxel
 
Contents Page Construction
Contents Page ConstructionContents Page Construction
Contents Page ConstructionConnorDelaney
 
Matins sûrs - Programme
Matins sûrs - ProgrammeMatins sûrs - Programme
Matins sûrs - ProgrammeCCICONNECT
 
Third place
Third placeThird place
Third placesitebato
 

Andere mochten auch (20)

Le derouleur de papier q
Le derouleur de papier qLe derouleur de papier q
Le derouleur de papier q
 
Isolation fibre de bois gutex - ageka
Isolation fibre de bois   gutex - ageka Isolation fibre de bois   gutex - ageka
Isolation fibre de bois gutex - ageka
 
3. las secuencias didacticas (1)
3. las secuencias didacticas (1)3. las secuencias didacticas (1)
3. las secuencias didacticas (1)
 
Reunion parent 22:05:12
Reunion parent 22:05:12Reunion parent 22:05:12
Reunion parent 22:05:12
 
Memoria electronica
Memoria electronicaMemoria electronica
Memoria electronica
 
Présentation 071108 clubnet
Présentation 071108  clubnetPrésentation 071108  clubnet
Présentation 071108 clubnet
 
Lernen & Arbeiten 2.0 - Mobile Learning
Lernen & Arbeiten 2.0 - Mobile LearningLernen & Arbeiten 2.0 - Mobile Learning
Lernen & Arbeiten 2.0 - Mobile Learning
 
3 e-cormerce
3   e-cormerce3   e-cormerce
3 e-cormerce
 
Bebes ondes-mode-d-emploi
Bebes ondes-mode-d-emploiBebes ondes-mode-d-emploi
Bebes ondes-mode-d-emploi
 
Ils l'ont dit!!!
Ils l'ont dit!!!Ils l'ont dit!!!
Ils l'ont dit!!!
 
GLUCONEOGENESIS BIOQUIMICA MEDICA 2
GLUCONEOGENESIS BIOQUIMICA MEDICA 2GLUCONEOGENESIS BIOQUIMICA MEDICA 2
GLUCONEOGENESIS BIOQUIMICA MEDICA 2
 
CVX. Relaciones entre CVX y sj 2010
CVX. Relaciones entre CVX y sj 2010CVX. Relaciones entre CVX y sj 2010
CVX. Relaciones entre CVX y sj 2010
 
PriceRunner Weihnachtsumfrage 2009 Ergebnisse
PriceRunner Weihnachtsumfrage 2009 ErgebnissePriceRunner Weihnachtsumfrage 2009 Ergebnisse
PriceRunner Weihnachtsumfrage 2009 Ergebnisse
 
Enigme
EnigmeEnigme
Enigme
 
Zukunft des Mobilen Lernens mit Scribicon
Zukunft des Mobilen Lernens mit Scribicon Zukunft des Mobilen Lernens mit Scribicon
Zukunft des Mobilen Lernens mit Scribicon
 
Viajando en el tiempo
Viajando en el tiempoViajando en el tiempo
Viajando en el tiempo
 
Contents Page Construction
Contents Page ConstructionContents Page Construction
Contents Page Construction
 
Matins sûrs - Programme
Matins sûrs - ProgrammeMatins sûrs - Programme
Matins sûrs - Programme
 
Third place
Third placeThird place
Third place
 
Guaranda
GuarandaGuaranda
Guaranda
 

Mehr von Peter Friese

Building Reusable SwiftUI Components
Building Reusable SwiftUI ComponentsBuilding Reusable SwiftUI Components
Building Reusable SwiftUI ComponentsPeter Friese
 
Firebase & SwiftUI Workshop
Firebase & SwiftUI WorkshopFirebase & SwiftUI Workshop
Firebase & SwiftUI WorkshopPeter Friese
 
Building Reusable SwiftUI Components
Building Reusable SwiftUI ComponentsBuilding Reusable SwiftUI Components
Building Reusable SwiftUI ComponentsPeter Friese
 
Firebase for Apple Developers - SwiftHeroes
Firebase for Apple Developers - SwiftHeroesFirebase for Apple Developers - SwiftHeroes
Firebase for Apple Developers - SwiftHeroesPeter Friese
 
 +  = ❤️ (Firebase for Apple Developers) at Swift Leeds
 +  = ❤️ (Firebase for Apple Developers) at Swift Leeds +  = ❤️ (Firebase for Apple Developers) at Swift Leeds
 +  = ❤️ (Firebase for Apple Developers) at Swift LeedsPeter Friese
 
async/await in Swift
async/await in Swiftasync/await in Swift
async/await in SwiftPeter Friese
 
Firebase for Apple Developers
Firebase for Apple DevelopersFirebase for Apple Developers
Firebase for Apple DevelopersPeter Friese
 
Building Apps with SwiftUI and Firebase
Building Apps with SwiftUI and FirebaseBuilding Apps with SwiftUI and Firebase
Building Apps with SwiftUI and FirebasePeter Friese
 
Rapid Application Development with SwiftUI and Firebase
Rapid Application Development with SwiftUI and FirebaseRapid Application Development with SwiftUI and Firebase
Rapid Application Development with SwiftUI and FirebasePeter Friese
 
Rapid Application Development with SwiftUI and Firebase
Rapid Application Development with SwiftUI and FirebaseRapid Application Development with SwiftUI and Firebase
Rapid Application Development with SwiftUI and FirebasePeter Friese
 
6 Things You Didn't Know About Firebase Auth
6 Things You Didn't Know About Firebase Auth6 Things You Didn't Know About Firebase Auth
6 Things You Didn't Know About Firebase AuthPeter Friese
 
Five Things You Didn't Know About Firebase Auth
Five Things You Didn't Know About Firebase AuthFive Things You Didn't Know About Firebase Auth
Five Things You Didn't Know About Firebase AuthPeter Friese
 
Building High-Quality Apps for Google Assistant
Building High-Quality Apps for Google AssistantBuilding High-Quality Apps for Google Assistant
Building High-Quality Apps for Google AssistantPeter Friese
 
Building Conversational Experiences with Actions on Google
Building Conversational Experiences with Actions on Google Building Conversational Experiences with Actions on Google
Building Conversational Experiences with Actions on Google Peter Friese
 
Building Conversational Experiences with Actions on Google
Building Conversational Experiences with Actions on GoogleBuilding Conversational Experiences with Actions on Google
Building Conversational Experiences with Actions on GooglePeter Friese
 
What's new in Android Wear 2.0
What's new in Android Wear 2.0What's new in Android Wear 2.0
What's new in Android Wear 2.0Peter Friese
 
Google Fit, Android Wear & Xamarin
Google Fit, Android Wear & XamarinGoogle Fit, Android Wear & Xamarin
Google Fit, Android Wear & XamarinPeter Friese
 
Introduction to Android Wear
Introduction to Android WearIntroduction to Android Wear
Introduction to Android WearPeter Friese
 
Google Play Services Rock
Google Play Services RockGoogle Play Services Rock
Google Play Services RockPeter Friese
 
Introduction to Android Wear
Introduction to Android WearIntroduction to Android Wear
Introduction to Android WearPeter Friese
 

Mehr von Peter Friese (20)

Building Reusable SwiftUI Components
Building Reusable SwiftUI ComponentsBuilding Reusable SwiftUI Components
Building Reusable SwiftUI Components
 
Firebase & SwiftUI Workshop
Firebase & SwiftUI WorkshopFirebase & SwiftUI Workshop
Firebase & SwiftUI Workshop
 
Building Reusable SwiftUI Components
Building Reusable SwiftUI ComponentsBuilding Reusable SwiftUI Components
Building Reusable SwiftUI Components
 
Firebase for Apple Developers - SwiftHeroes
Firebase for Apple Developers - SwiftHeroesFirebase for Apple Developers - SwiftHeroes
Firebase for Apple Developers - SwiftHeroes
 
 +  = ❤️ (Firebase for Apple Developers) at Swift Leeds
 +  = ❤️ (Firebase for Apple Developers) at Swift Leeds +  = ❤️ (Firebase for Apple Developers) at Swift Leeds
 +  = ❤️ (Firebase for Apple Developers) at Swift Leeds
 
async/await in Swift
async/await in Swiftasync/await in Swift
async/await in Swift
 
Firebase for Apple Developers
Firebase for Apple DevelopersFirebase for Apple Developers
Firebase for Apple Developers
 
Building Apps with SwiftUI and Firebase
Building Apps with SwiftUI and FirebaseBuilding Apps with SwiftUI and Firebase
Building Apps with SwiftUI and Firebase
 
Rapid Application Development with SwiftUI and Firebase
Rapid Application Development with SwiftUI and FirebaseRapid Application Development with SwiftUI and Firebase
Rapid Application Development with SwiftUI and Firebase
 
Rapid Application Development with SwiftUI and Firebase
Rapid Application Development with SwiftUI and FirebaseRapid Application Development with SwiftUI and Firebase
Rapid Application Development with SwiftUI and Firebase
 
6 Things You Didn't Know About Firebase Auth
6 Things You Didn't Know About Firebase Auth6 Things You Didn't Know About Firebase Auth
6 Things You Didn't Know About Firebase Auth
 
Five Things You Didn't Know About Firebase Auth
Five Things You Didn't Know About Firebase AuthFive Things You Didn't Know About Firebase Auth
Five Things You Didn't Know About Firebase Auth
 
Building High-Quality Apps for Google Assistant
Building High-Quality Apps for Google AssistantBuilding High-Quality Apps for Google Assistant
Building High-Quality Apps for Google Assistant
 
Building Conversational Experiences with Actions on Google
Building Conversational Experiences with Actions on Google Building Conversational Experiences with Actions on Google
Building Conversational Experiences with Actions on Google
 
Building Conversational Experiences with Actions on Google
Building Conversational Experiences with Actions on GoogleBuilding Conversational Experiences with Actions on Google
Building Conversational Experiences with Actions on Google
 
What's new in Android Wear 2.0
What's new in Android Wear 2.0What's new in Android Wear 2.0
What's new in Android Wear 2.0
 
Google Fit, Android Wear & Xamarin
Google Fit, Android Wear & XamarinGoogle Fit, Android Wear & Xamarin
Google Fit, Android Wear & Xamarin
 
Introduction to Android Wear
Introduction to Android WearIntroduction to Android Wear
Introduction to Android Wear
 
Google Play Services Rock
Google Play Services RockGoogle Play Services Rock
Google Play Services Rock
 
Introduction to Android Wear
Introduction to Android WearIntroduction to Android Wear
Introduction to Android Wear
 

Textuelle DSLs - Alter Wein In Neuen Schläuchen