Textuelle DSLs - Alter Wein In Neuen Schläuchen

23
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

description

MF (Graphical Modeling Framework) sowie Xtext hat sich dies grundlegend geändert. Insbesondere die Erstellung von externen textuellen DSLs auf Basis von EBNF-basierten Grammatiken hat sich deutlich vereinfacht. Doch handelt es sich hier nicht um alten Wein in neuen Schläuchen? Parser- und Generatorbau können guten Gewissens als alte Disziplinen der Informatik bezeichnet werden und begleiten uns nun schon seit etlichen Jahrzehnten. Können durch textuelle externe DSLs die immer noch existenten Probleme der modellgetriebenen Softwareentwicklung (Teamarbeit / Versionierung) gelöst werden?

Transcript of Textuelle DSLs - Alter Wein In Neuen Schläuchen

Page 1: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Textuelle DSLsAlter 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

Page 2: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Probleme

Page 3: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Niedrige Effizienz

Page 4: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Sprachlosigkeit

Page 5: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Ausdrucksschwache Sprachen

Page 6: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Auswege

MDSD

DSLs

DSLs

Page 7: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Eine Domain Specific Language (DSL) ist eine formale, durch Computer verarbeitbare Sprache, die einen bestimmten Gesichtspunkt bzw.

Aspekt eines Softwaresystems ausdrückt.

Page 8: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Arten von DSLs

textuell grafisch

Page 9: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Eine wahre Geschichte...

Page 10: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Eine wahre Geschichte...

Page 11: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Eine wahre Geschichte...

“It’s old wine in new bottles!”

Page 12: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Eine wahre Geschichte...

“It’s old wine in new bottles!”

“People have been writing their own languages for decades”

Page 13: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Auswege

MDSD

DSLs

DSLs

Page 14: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Alter Wein in neuen Schläuhen

MDSD

DSLs

DSLs

Generatoren

Lexer / Parser

Lexer / Parser

Page 15: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Die Gute Alte Zeit™

1)Grammatik für ANTLR erstellen2)Lexer / Parser generieren3)Parser erstellt Parsetree4)Parsetree in semantisches Model transformieren

5)Modell iterieren6)Modellelemente an Template übergeben

Page 16: Textuelle DSLs - Alter Wein In Neuen Schläuchen
Page 17: Textuelle DSLs - Alter Wein In Neuen Schläuchen

... zur Beschreibung von DSLs

Xtext - eine DSL...

Page 18: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Brave New World1)Grammatik für Xtext erstellen2)Lexer / Parser / Metamodell / UI generieren3)Parser erstellt Parsetree 4)UND semantisches Modell

5)Workflow steuert Iteration des Modells und Templateverarbeitung

Page 19: Textuelle DSLs - Alter Wein In Neuen Schläuchen

DEMO

Page 20: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Alter Wein?

Page 21: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Abstraktion

Page 22: Textuelle DSLs - Alter Wein In Neuen Schläuchen

Effizienzsteigerung in der Toolentwicklung

Page 23: Textuelle DSLs - Alter Wein In Neuen Schläuchen

@xtexthttp://www.xtext.org