Knowledge Base

Was sind domänenspezifische Sprachen und wann ist ihr Einsatz sinnvoll?

Projektleiter stehen immer wieder vor der Frage, ob es für ihr Projekt nützlich ist, domänenspezifische Sprachen (DSL) zu entwickeln. Eine solche DSL deckt in der Regel nur einen Aspekt oder Teilbereich im Gesamtprojekt ab, sodass es oftmals auch zum Einsatz mehrerer DSLs im Rahmen eines Projektes kommt.

Selbstverständlich kann es auch sinnvoll sein, eine schon bestehende DSL in einem Projekt zu verwenden. Dies ist meist einfacher zu realisieren, da es für bestimmte Domänen schon sehr verbreitete DSLs gibt, die quasi einen Standard darstellen.

Ich will in diesem Artikel jedoch Anhaltspunkte dafür liefern, wann es sinnvoll ist, eine eigene DSL zu entwickeln.

Was sind domänenspezifische Sprachen?

Domänenspezifische Sprachen begegnen uns in verschiedenen Formen. Wir unterscheiden technische DSLs, wie etwa SQL, MatLab/Simulink und AUTOSAR auf der einen Seite, und konzeptuelle DSLs wie Stundenpläne in der Schule oder auch Versicherungsverträge auf der anderen.

Beispiele für domänenspezifische Sprachen:

SQL

SQL ist eine textuelle DSL zur Entwicklung von Datenbanken.

Beispiel: Select * from employees where salary>=1000 And salary<2000

MatLab / Simulink

Matlab ist ein Werkzeug mit einer textuellen DSL mit der z.B. numerische Probleme gelöst werden können. Darauf aufsetzend stellt Simulink eine grafische DSL zur Modellierung von technischen und physikalischen Systemen zur Verfügung.

Beispiel: Steuerung eines Lego Roboters