Deutsch (DE-CH-AT)English (EN)Francais (Fr)

In der Diskussion: Language Workbenches

In einem neuen Online-Artikel geht Martin Fowler, ein bekannter Autor in der Software-Entwicklungs-Szene, auf domänenspezifische Sprachen (Domain Specific Language, DSL) und Codegeneratoren ein. Interessant ist, dass diesbezüglich mehrere Hersteller unabhängig voneinander Tools entwickeln, die konzeptionell in dieselbe Richtung gehen: Ein exotisches Randgebiet der Software-Entwicklung wird zum Mainstream. Wie sind die von Fowler analysierten Konzepte zu bewerten? Und wo in diesem Kontext ist eine Technologie wie HyperSenses einzuordnen – ein Generatorsystem, welches ebenfalls auf Domänenorientierung setzt? Die Antwort: Mittendrin. Lesen Sie mehr dazu in den folgenden Zeilen.

Fowler skizziert in seinem Artikel "Language Workbenches: The Killer-App for Domain-Specific Languages" mehrere Arten von DSLs, die sich in ihrer Realisierung und in ihrem Abstraktionsgrad unterscheiden, und verwendet den Begriff "Language Oriented Programming" für alle konkreten DSL-Realisierungen. Ausgehend von der Beobachtung, dass diese Art der Programmierung bereits seit Langem gang und gäbe ist, motiviert er eine Reihe von Konzepten für eine neue Gattung von Werkzeugen: "Language Workbenches".

www.martinfowler.com

Fowler kritisiert vor allem die Verwendung von Standard-DSLs (Beispiele: XML, Ruby on Rails) und hält den Einsatz von spezialisierten DSLs für unabdingbar, wenn auch Programmier-Laien (die fachliche Experten sind) mit DSLs arbeiten sollen. Dies lasse sich wirtschaftlich nur mit einer entsprechenden Werkzeugunterstützung vertreten. Beispiele für Entwicklungsaktivitäten in dieser Richtung seien die Arbeiten bei Intentional Software, das Meta-Programming System (MPS) von JetBrains sowie Microsofts Software Factories.

"One of the strongest qualities of language workbenches is that they alter the relationship between editing and compiling the program. Essentially they shift from editing text files to editing the abstract representation of the program."
(M. Fowler in "Language Workbenches: The Killer-App for Domain-Specific Languages")

Das obige Zitat gibt die zentrale Eigenschaft von Language Workbenches wieder. Fowler spricht von einer abstrakten Repräsentation der mittels einer DSL formulierten Eigenschaften. Diese Abstraktion diene als Datenbasis für verschiedene Projektionen, in denen sie editiert werden könne. Die Abbildung auf eine Implementierung realisiere einen Generierungsprozess, der die Datenabstraktion als Eingabe erhalte. Zentrale Eigenschaft sei, dass keine Programmtexte mehr editiert würden, sondern eine Projektion der abstrakt vorliegenden Daten.

Aus diesem Konzept leitet Fowler drei Teilaufgaben zur Definition einer neuen DSL ab: Ein Schema für die abstrakte Repräsentation, ein Editor für die Projektionen sowie ein Generator zur Erzeugung des Quellcodes seien erforderlich. Dieses Konzept entspricht ganz und gar der Idee von HyperSenses: Dort ist das Schema das Metamodell, die abstrakte Repräsentation das Modell, die Projektionen entsprechen Konfigurations-Renderings, der Editor ist das Tool HyperSenses Active Intent™ und der Generator besteht aus Produktions-Renderings. HyperSenses ist eine Language Workbench.

Interessanterweise beklagt Fowler das Fehlen von Standards für die Definition des Trios aus Schema, Editor und Generator. Dem ist nicht so: Eine abstrakte Repräsentation, für die ein Schema existiert, kann man zu Recht als Modell und Metamodell bezeichnen. Der entsprechende Standard ist die Meta Object Facility (MOF) der Object Management Group (OMG). Dieser Standard bezieht sich zwar allgemein auf jegliche Modell-Metamodell-Abstraktionen und ist kein spezieller Standard für Language Workbenches. Er lässt sich aber – im Einklang mit seiner Intention – auf diese anwenden: HyperSenses beispielsweise basiert auf MOF.

Insgesamt lässt sich beobachten, dass sich immer mehr Entwicklungsumgebungen in die Richtung von Language Workbenches entwickeln, wenngleich viele Produkte noch keine wirkliche Marktreife erlangt haben. Es handelt sich zweifellos um einen Bereich, der sich an der Schwelle zum Mainstream befindet. Aus unserer Sicht wird es spannend sein, inwiefern sich modellbasierte Konzepte, die auf offenen Standards wie MOF aufbauen, gegenüber proprietären Implementierungen durchsetzen können.

Der Artikel von Martin Fowler:
"Language Workbenches: The Killer-App for Domain-Specific Languages"

 
Weitere Infos
Newsletter
Quotes
„Mit Delta zu arbeiten, erwies sich als eine sehr gute Entscheidung. Sie lieferten als einzige eine Lösung, die unsere Erwartungen erfüllte. Aus der Sicht von RDW ist Delta ein außerordentlich engagiertes Unternehmen mit einem noch höheren Maß an fachlicher Kompetenz."
Gerard Doll, Direktor ICT, RDW, Niederlande

RDW Fallstudie

Bookmark and Share