In letzter Zeit sind in der Software-Entwicklung domänenspezifische
Sprachen
- kurz als DSL für „domain-specific language“ bezeichnet -
populär geworden: Das Versprechen einer DSL ist es, für ein bestimmtes
Anwendungsgebiet besonders kompakte und verständliche
Programme zu ermöglichen. Diese Programme können außerdem auf
technische Details verzichten, die nichts direkt mit dem
Anwendungsgebiet zu tun haben.
Das Entwickeln einer konventionellen DSL ist aufwendig, da zur
Implementierung DSL alles dazugehört, was bei einer „normalen“
Programmiersprachenimplementierung ebenfalls fällig ist: Lexer, Parser,
Compiler oder Interpreter sowie IDE-Support. Aus diesem Grund sind
substantielle Frameworks für die schnelle Entwicklung von
DSLs entstanden, z.B. Spoofax, das
Eclipse Modeling Project oder
Xtext.
In funktionalen Sprachen gibt es allerdings häufig einen einfacheren
Weg: die Entwicklung einer sogenannten eingebetteten DSL (kurz
EDSL für
„embedded DSL“). Dabei wird die
Host-Sprache so eingesetzt, dass es so aussieht, als ob innerhalb
der Host-Sprache eine DSL entsteht. Dies hat eine Reihe von
Vorteilen:
Weiterlesen...