MOSTflexiPL - Modular, Statically Typed, Flexibly Extensible Programming Language

Universität Ulm

Informatik-Kolloquium, Prof. Dr. Christian Heinlein, Ort: O27/545, Datum: 14.07.2016, Zeit: 10:15 Uhr

Die Programmiersprache MOSTflexiPL (Modular, Statically Typed, Flexibly Extensible Programming Language; flexipl.info) kann vom Anwender nahezu beliebig syntaktisch erweitert und angepasst werden. Basierend auf einer kleinen Menge vordefinierter Grundkonstrukte (u. a. für Arithmetik, Logik und Kontrollstrukturen), lassen sich nach Belieben neue syntaktische Konstrukte definieren, z. B. Präfix-, Postfix- und Infixoperatoren, mehrteilige Operatorkombinationen, Kontrollstrukturen und Typkonstruktoren. Selbst die Syntax, die zur Definition neuer Syntax verwendet wird, lässt sich prinzipiell erweitern oder verändern.

Die vordefinierten Grundkonstrukte sind so ausdrucksstark, dass neben rein syntaktischen „Spielereien“ auch weitreichende konzeptuelle Erweiterungen möglich sind. Trotzdem lassen sich Spracherweiterungen im Wesentlichen genauso leicht schreiben wie gewöhnliche Programme.
Abgesehen von dieser enormen syntaktischen Flexibilität, bietet die Sprache auch ein interessantes und ausdrucksstarkes Typsystem, das u. a. beliebige benutzerdefinierte Typumwandlungen erlaubt. Außerdem lassen sich durch die Kombination expliziter, impliziter und deduzierter Parameter sehr allgemeine und flexible Programme schreiben.

MOSTflexiPL kann einerseits als erweiterbare „general purpose programming language“ verwendet werden, die dem Anwender die Möglichkeit bietet, umständliche oder immer wiederkehrende Formulierungen syntaktisch kürzer und ansprechender zu „verpacken“. Die so entwickelten Spracherweiterungen können dann auch in anderen Projekten oder von anderen Programmierern verwendet werden. Außerdem bietet MOSTflexiPL die Möglichkeit, ohne viel Aufwand mit neuen Sprachkonstrukten (etwa für parallele Programmierung) zu experimentieren. Und schließlich eignet sich die Sprache natürlich auch gut als Basis zur Entwicklung anwendungsspezifischer Sprachen (DSLs).

Im Vortrag werden die wesentlichen Konzepte von MOSTflexiPL vorgestellt und anhand zahlreicher Beispiele illustriert. Im Anschluss steht der Referent gerne für eine Live-Demonstration mit offenem Ende zur Verfügung.