Dr. Markus Voelters Session von der JAX 2018

Funktionale Programmierung: Interna einer funktionalen Sprache

Funktionale Programmierung: Interna einer funktionalen Sprache

Dr. Markus Voelters Session von der JAX 2018

Funktionale Programmierung: Interna einer funktionalen Sprache


Wo von funktionaler Programmierung die Rede ist, sind funktionalen Sprachen meist nicht weit. In seiner Session auf der JAX 2018 erklärt Dr. Markus Voelter fortgeschrittene Konzepte, wie unter anderem Higher-Order-Funktionen, Currying, Effekt-Tracking und Caching von Funktionsaufrufen, auf Basis einer minimalen funktionalen Sprache.

Die Grundlagen funktionaler Programmierung, also Funktionen, unveränderbare Daten, und Assign-once-Variablen sind einfach zu verstehen. Schwieriger wird es für fortgeschrittene Konzepte. Dazu zählen unter anderem Higher-Order-Funktionen, Currying, Effekt-Tracking und Caching von Funktionsaufrufen sowie der systematische Umgang mit veränderbaren Daten oder zustandsbehaftetem Verhalten.

In seiner Session erklärt Dr. Markus Voelter diese Techniken auf Basis einer minimalen funktionalen Sprache. Über die letzten Jahre hat er eine eigene funktionale Programmiersprache gebaut, die als Kern von DSLs zum Einsatz kommt. Die Struktur und das Typsystem der Sprache sind in MPS entwickelt, die Semantik ist durch einen in Java implementierten Interpreter definiert. Alle Interna der Sprache sind also weitgehend deklarativ oder mittels Java-Code realisiert und eignen sich dadurch hervorragend zur Erläuterung der Konzepte. Die Session hat nicht zum Ziel, MPS als Language Workbench zu erklären. MPS ist nur didaktisches Werkzeug, um die Implementierung der interessanten Konzepte einer funktionalen Sprache zu erläutern. Die Session besteht zum Großteil aus Demo und Live Coding.

Funktionale Programmierung: Interna einer funktionalen Sprache von JAX TV auf Vimeo.

Dr. Markus Voelter