The document discusses domain-specific languages (DSLs) and provides examples of DSLs. It introduces Jan Köhnlein, a software architect and consultant who has experience with modeling and open-source projects. It then provides information about itemis, including that it specializes in model-based development processes and has locations in several countries. Examples of DSLs include a chess notation language, a Java persistence annotation language (JPA), and a small modeling language for describing entities and their properties. Benefits of DSLs include abstraction and focusing on a specific domain or viewpoint. Challenges include that DSLs can be complicated to design and implement.
6. • Software Architect, Consultant,
Coach at itemis
• Several years of experience
in the modeling world
Jan Köhnlein
7. • Software Architect, Consultant,
Coach at itemis
• Several years of experience
in the modeling world
• Committer to several open-
source projects
Jan Köhnlein
8. itemis short facts
Spezialist für modellbasierte Entwicklungsverfahren
Gründung im Jahr 2003
Niederlassungen in Deutschland, Frankreich,
Schweiz und Kanada
140 Mitarbeiter
Strategisches Mitglied der Eclipse Foundation
Intensive Verzahnung im Bereich der Forschung
Mitglied von ARTEMISIA
Embedded Software Development
Enterprise Application Development
1
11. A domain-specific language (DSL)
is a formal, processable language
targeting at a specific viewpoint or aspect
of a system.
12. A domain-specific language (DSL)
is a formal, processable language
targeting at a specific viewpoint or aspect
of a system.
Its semantics, flexibility and notation is designed
in order to support working with that viewpoint
as good as possible.
90. Integration with EMF
eclipse
Any EMF-based modeling
Code Generator GMF Editor P R O J E C T
Component
91. Integration with EMF
eclipse
Any EMF-based modeling
Code Generator GMF Editor P R O J E C T
Component
<<abstract>>
XMIResource
Resource
92. Integration with EMF
eclipse
Any EMF-based modeling
Code Generator GMF Editor P R O J E C T
Component
<<abstract>>
XMIResource
Resource
93. Integration with EMF
eclipse
Any EMF-based modeling
Code Generator GMF Editor P R O J E C T
Component
<<abstract>> XMI
XMIResource
Resource
94. Integration with EMF
eclipse
Any EMF-based modeling
Code Generator GMF Editor P R O J E C T
Component
<<abstract>> XMI
XMIResource
Resource
95. Integration with EMF
eclipse
Any EMF-based modeling
Code Generator GMF Editor P R O J E C T
Component
<<abstract>> XMI
XMIResource
Resource
XtextResource
96. Integration with EMF
eclipse
Any EMF-based modeling
Code Generator GMF Editor P R O J E C T
Component
<<abstract>> XMI
XMIResource
Resource
XtextResource
97. Integration with EMF
eclipse
Any EMF-based modeling
Code Generator GMF Editor P R O J E C T
Component
<<abstract>> XMI
XMIResource
Resource
XtextResource Text
98. Integration with EMF
eclipse
Any EMF-based modeling
Code Generator GMF Editor P R O J E C T
Component
<<abstract>> XMI
XMIResource
Resource
XtextResource Text
Parser Linker Serializer
ValueConverter ScopeProvider Formatter
101. Questions?
find out more at
http://www.xtext.org
102.
103. Aktuelle Veranstaltungen
LOP und DSLs - Köln, 15:00
25. August 2009: Deutsches Zentrum für Luft- und Raumfahrt - Falko Riemenschneider,
NRWConf. 2009
27-28. August 2009: Wolkenburg 100, 42119 Wuppertal
Domänenspezifische Sprachen - Lars Corneliussen
12.15 Uhr - 12.45 Uhr
Die 10 Gebote der Architektur - Georg Pietrek
15.20 Uhr - 16.20 Uhr
Scrum: Vom Businessneed zum hochwertigen Produktbacklog, Bonn, 18:30
31.August 2009 - Konferenzhotel Bonn - Sebastian Neus / Dr. Martin Wrangel
Tagung: Mensch und Computer 2009, Berlin, 09:00
07. September 2009 - Leichtgewichtigkeit als Prinzip –
Gestaltung der Webanwendung myPIM durch UCD, FDD und Xtext – Torsten Krohn
Praktische Anwendung von EMF Compare, Dortmund 18:30
14. September 2009 - Harenberg City Center - Dr. Lothar Wendehals
Alle aktuellen Veranstaltungen und weiterführende Informationen auf: http://www.itemis.de/veranstaltungen
kryptisch ist relativ!
Bezug auf Konzepte der Dom&#xE4;ne, formal
Business-DSL: nicht technisch, f&#xFC;r nicht Techiker geeignet
Java schlecht im Abstrahieren von Struktur, Redundanz
Code-Generierung definiert Platform-Mapping (Architekt)
Referenz aus anderen DSLs, Wartbarkeit
Java schlecht im Abstrahieren von Struktur, Redundanz
Code-Generierung definiert Platform-Mapping (Architekt)
Referenz aus anderen DSLs, Wartbarkeit
AST: Abstrakter Syntaxbaum
Java schlecht im Darstellen von B&#xE4;umen
lohnt schon bei wenigen Tests, Test schreiben macht Spa&#xDF;
Interpreter
Java schlecht im Darstellen von B&#xE4;umen
lohnt schon bei wenigen Tests, Test schreiben macht Spa&#xDF;
Interpreter
Java schlecht im Darstellen von B&#xE4;umen
lohnt schon bei wenigen Tests, Test schreiben macht Spa&#xDF;
Interpreter
Raise level of abstraction, Avoids redundancy
Separation of concerns, Reuse of domain concepts
Higher expressiveness, Ubiquitous language
GPLs k&#xF6;nnen alles
Spezielle Aufgaben erfordern spezielle Tools
Vorsicht vor wiederverwendbaren von DSLs (Beispiel Feins&#xE4;ge)
GPLs k&#xF6;nnen alles
Spezielle Aufgaben erfordern spezielle Tools
Vorsicht vor wiederverwendbaren von DSLs (Beispiel Feins&#xE4;ge)
Die DSL f&#xFC;r DSLs, Eclipse-basiert
Define textual DSLs easily, Ready-to-use tool-chain, Easy but flexible customizing and tweaking,
Durable foundation with Java Eclipse EMF, Strong community