Domain Specific Languages

Martin Fowler und Rebecca Parsons schaffen es eindrucksvoll, dem Entwickler das Eintrittstor zum Thema domänenspezifische Sprachen zu öffnen.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 2 Min.
Von
  • Dr. Michael Stal

Martin Fowler, Rebecca Parsons
Domain Specific Languages

Addison-Wesley Longman, 2010
640 Seiten
€ 45,70
ISBN 978-0-3217-1294-3

Galten DSLs in der Vergangenheit eher als Zaubermittel eingeweihter Gurus, hat sich die Perspektive inzwischen dank Sprachen wie Ruby oder LINQ sowie Werkzeugen à la JetBrains MPS (Meta Programming System) gründlich gewandelt. Heutzutage trauen sich selbst Normalsterbliche an solche Unterfangen heran. Und denen wollen Fowler und Parsons unter die Arme greifen. Hauptbestandteil des über 640-seitigen Buches sind 46 Muster, die primär von der Erstellung und Verarbeitung domänenspezifischer Sprachen handeln.

Anhand eines konfigurierbaren Sicherheitssystems demonstrieren die beiden die Vorteile einer domänenspezifischen Konfigurationssprache (wann ein Hausüberwachungssystem nach diversen Benutzeraktionen ein Versteck öffnen sollte). Um das durch eine geeignete Sprache abzudecken, wählen die Autoren Zustandsmaschinen als semantisches Konzept.

Zu unterscheiden ist laut Fowler zwischen internen DSLs, die sich in Sprachen wie Ruby oder Scala mit den Mitteln der Programmiersprache ausdrücken lassen – und externen DLS, die der Entwickler als eigene Sprachen konzipieren muss und die großen programmatischen Aufwand für ihre Analyse und semantische Umsetzung benötigen. Auf beide Aspekte gehen die Autoren ausführlich ein und offerieren jeweils ein System zusammengehöriger Muster, etwa Lexer, Parser Combinator, Recursive Descent Compiler.

Zu den Stärken des Bandes gehört sein pragmatischer Ansatz. Statt auf ausufernden und oft eher theoretischen Diskussionen über Metamodelle und Metametamodelle liegt der Fokus eindeutig auf der praktischen Umsetzung. Es geht auch auf Fragestellungen ein wie die, wann die Entwicklerin besser auf Anwendungsrahmenwerke und Bibliotheken anstatt auf DSLs setzen sollte. Damit verschafft der Band dem Leser einen angenehmen, pragmatischen und weitgehend schmerzfreien Zugang

Wo viel Licht, ist auch Schatten. So fällt das Thema Language Workbenches kurz aus. Zudem stellen einige der vorgestellten Muster weniger solche im herkömmlichen Sinne dar, sondern definieren eher gute und teilweise bekannte Praktiken. Die hohe Zahl von Codebeispielen ist auf der einen Seite hilfreich, auf der anderen wären detailliertere Betrachtungen der Konzepte nützlich. Und nicht zuletzt bleibt auf der Strecke, wie Entwickler genau zur richtigen DSL kommen.

Insgesamt schaffen es Fowler und Parsons eindrucksvoll, dem Entwickler das Eintrittstor zum Thema DSLs zu öffnen. Wer sich mehr für Konzepte, Language Workbenches oder Methodiken interessiert, sollte hingegen auf zukünftige Literatur warten. (ane)