Hinweis: Die aktuelle OOP-Konferenz finden Sie hier!
SIGS DATACOM Fachinformationen für IT-Professionals

COMPLEXITY:
Managing Today's Challenges

München, 03. - 07. Februar 2014

Konferenz

Eingebettete DSLs implementieren mit Clojure

Datum:03.02.2014
Uhrzeit:18:30 - 20:00
Vortrag: Nmo 1
cart
Sprecher:

Eingebettete DSLs sind eine Alternative zu "Stand-Alone-DSLs": Sie werden mit den Bordmitteln einer Host-Sprache als Library entwickelt. Das spart Zeit bei Design und Implementierung und macht außerdem die Sprachmittel der Host-Sprache in der DSL verfügbar. Für die Implementierung von EDSLs sind funktionale Sprachen besonders gut geeignet: Features wie First-Class-Funktionen und Makros unterstützen das systematische Design von DSLs. In der Session zeige ich, wie Entwickler DSLs in der funktionalen Sprache Clojure entwickeln können.

Zielpublikum: Architekten, Entwickler, Entscheider
Voraussetzungen: Erfahrung in einer beliebigen OO-Sprache; eine kurze Einführung in Clojure wird gegeben Schwierigkeitsgrad: Experte

Sie lernen:
- entscheiden, wann eine EDSL (im Unterschied zu einer DSL) sinnvoll ist
- wissen, welche Rolle funktionale Programmierung bei der Implementierung einer EDSL spielt
- einfache EDSLs in Clojure implementieren

Ausführliche Beschreibung:
Eingebettete DSLs ("EDSLs") sind eine Alternative zu "Stand-Alone-DSLs": Sie werden mit den Bordmitteln einer Host-Sprache als Library entwickelt. Da Implementierer sich beim Design an der Host-Sprache orientieren können, vermeiden sie von vornherein häufig auftretende Fehler. Da viele DSLs sich über die Zeit zu ausgewachsenen Programmiersprachen entwickeln, spart das Einbetten außerdem viel Zeit und Aufwand, da Sprachmittel direkt von der Host-Sprache in die DSL übernommen werden können.
In funktionalen Sprachen funktioniert der EDSL-Ansatz besonders gut, weil dort typische Sprachmittel wie Higher-Order-Funktionen, Makros, nicht-strikte Auswertung und Typklassen ganz natürliche Einsatzgebiete finden. Die Abstraktionsmittel dieser Sprachen erlauben außerdem, bei Design und Implementierung von DSLs systematisch vorzugehen: Das ist angesichts der Unmenge von halbgaren Designs in der DSL-Landschaft besonders wichtig.
In der Session zeige ich, wie Entwickler systematisch DSLs in die funktionalen Sprache Clojure einbetten können. Clojure eignet sich vor allem wegen der flexiblen Syntax und mächtigen Makros besonders gut für diesen Ansatz.