JAX | 07. - 11. September 2020 Mainz

Sprache als Werkzeug: DSLs mit Kotlin

Session
Bis 14. Mai: ✓ 5-Tages-Special ✓ Kollegenrabatt ✓ Bis zu 401 € sparen Jetzt anmelden
Infos
Donnerstag, 14. Mai 2020
15:30 - 16:30

Domänenspezifische Sprachen (engl. DSLs) sind seit jeher dazu geeignet, komplexe Ausdrücke kompakter und besser lesbar auszudrücken. Dabei befreien sie den Benutzer von der Notwendigkeit, wiederkehrende Programmfragmente zu pflegen. Sie reduzieren den Blick auf den wesentlichen Inhalt der zugrunde liegenden Domäne. Während es an sinnvollen Anwendungsgebieten von DSLs nicht mangelt, sind deren Funktionsweise und Erstellung oftmals zu Unrecht als Mysterium verschrieen.

Domänenspezifische Sprachen unterteilen sich grundsätzlich in externe und interne DSLs. Externe DSLs definieren eine unabhängige eigene Sprache, z.B. Xtend oder SQL. Daher bedarf es zu deren Ausführung einer eigenständigen Syntaxanalyse, -validierung und eines Compilers oder Interpreters. Interne DSLs basieren auf Host-Programmiersprachen. Daher ist ihr Sprachumfang nicht abgeschlossen, sondern lässt sich durch deren Sprachelemente erweitern.

Kotlin bietet mit Extension Functions und Lambdas with Receivers ideale Voraussetzungen für die Erstellung interner DSLs. Dies zeigt auch ein Blick auf die ständig wachsende Zahl von Kotlin-basierten DSLs, wie z.B. der Kotlin Gradle DSL oder der Spring Beans DSL. In diesem Vortrag sollen die Grundlagen zur Erstellung eigener DSLs mit Kotlin vermittelt werden. Anhand eines praxisorientierten Beispiels wird schrittweise eine DSL während des Vortrags erstellt.

Alle News der Java-Welt:
Alle News der Java-Welt:

Behind the Tracks

Agile & Culture
Teamwork & Methoden

Data Access & Machine Learning
Speicherung, Processing & mehr

Clouds, Kubernets & Serverless
Alles rund um Cloud

Core Java & JVM Languages
Ausblicke & Best Practices

DevOps & Continuous Delivery
Deployment, Docker & mehr

Microservices
Strukturen & Frameworks

Web Development & JavaScript
JS & Webtechnologien

Performance & Security
Sichere Webanwendungen

Serverside Java
Spring, JDK & mehr

Digital Transformation & Innovation
Technologien & Vorgehensweisen

Software-Architektur
Best Practices

Domain-driven Design
Grundlagen und Ausblick

Spring Ecosystem
Wissen in Spring-Technologien

Web-APIs
API-Technologie, Design und Management