DSL Engineering

DSL Engineering
Untertitel

Designing, Implementing and Using Domain-Specific Languages

Autor

Markus Völter

Verlag

CreateSpace Independent Publishing Platform

Erschienen

2013

Seiten

558

Preis

26,74 Euro

Sprache

Englisch

ISBN

978-1481218580

Preis

26,74 Euro

Domänenspezifische Sprachen (DSLs) sind seit jeher fester Bestandteil im Werkzeugkasten eines jeden Softwareentwicklers. Sie grenzen sich von bekannten universalen Programmiersprachen (oder auch General Purpose Languages – GPLs) wie C++ oder Java dadurch ab, dass sie für den Einsatz in einer bestimmten Domäne zugeschnitten sind. Damit sind sie weniger vielseitig, aber innerhalb der Domäne, für die sie entwickelt wurden wesentlich präziser und gleichzeitig effizienter einsetzbar. Dies macht DSLs zu einem Thema für jeden Softwareentwickler, dem die Effizienz und Qualität seiner Arbeit am Herzen liegt. Zu den bekanntesten DSLs zählen Sprachen wie SQL, Reguläre Ausdrücke oder ANT Scripte.

Language Workbenches

In der Vergangenheit unterschied sich das Handwerkszeug zur Entwicklung von DSLs kaum von dem, das für GPLs zum Einsatz kam. Mit sogenannten Language Workbenches, das sind integrierte Entwicklungsumgebungen für DSLs, ändert sich das Bild allerdings grundlegend. Die Erstellung von DSLs und zugehöriger Werkzeuge wie Editor, Interpreter und Compiler wird einfacher und kostengünstiger. Damit erschließen sich neue Einsatzszenarien.

Das Buch „DSL Engineering“ vermittelt den Umgang mit solchen Language Workbenches. Es besteht aus vier Teilen. Im ersten Teil stellen die Autoren die Grundlagen von DSLs sowie deren wesentliche Vor- und Nachteile kurz und bündig dar. Im anschließenden Teil 2 erfolgt zunächst eine recht formale Definition zentraler Konzepte der DSL-Entwicklung. Daraufhin werden verschiedene Dimensionen des DSL Designs eruiert.

In Teil 3 des Buches widmen sich die Autoren den praktischen Aspekten der DSL Implementierung. Sie decken dabei grundlegende Aspekte wie den Entwurf von Abstrakter und Konkreter Syntax und den Bau von Interpretern und Compilern (Generatoren) ab. Anschließend gehen die Autoren auf weiterführende Themen wie statische Sprachsemantik, Realisierung von IDE Support sowie Testen, Debuggen und Modularisieren von DSLs ein. Die Behandlung dieser Aspekte erfolgt jeweils in Bezug auf drei von den Autoren exemplarisch gewählten Language Workbenches. Diese unterscheiden sich jeweils hinsichtlich des eingesetzten Parsingansatzes und der abstrakten Repräsentation von DSL Programmen. Die Darstellung der Implementierungsaspekte erfolgt sehr detailliert anhand von DSL-Beispielen und mit zahlreichen Listings.

In Teil 4 behandelt das Buch verschiedenste Anwendungsbeispiele für DSLs zum Beispiel bei Anforderungsanalyse, Design, Implementierung und Testen von Software.

Fazit

DSL Engineering besticht durch seine praxisorientierte, umfassende und detaillierte Behandlung grundlegender und fortgeschrittener Themen der DSL Entwicklung. Den Autoren gelingt es, die technische Tiefe und Vielfalt des Themas in verständlicher und nachvollziehbarer Weise darzustellen. Durch die Behandlung von drei alternativen Language Workbenches für die Implementierung von DSLs werden deren unterschiedliche Vor- und Nachteile deutlich und die verschiedenen Herangehensweisen gut abgrenzbar. Allerdings hemmt der häufige Wechsel zwischen den verschiedenen Tools den Lesefluss etwas. Das Buch bietet damit insgesamt eine umfassende Wissenssammlung und einen detaillierten Überblick über den heutigen Stand der Technik und empfiehlt sich so für angehende und erfahrende DSL Entwickler.

Christian Wende

Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: