The Design and Implementation of the Management Action Language and the Life Cycle of Other DSLs

Holger Stadel Borum

Research output: Book / Anthology / Report / Ph.D. thesisPh.D. thesis

Abstract

A domain-specific language (DSL) is a programming language designed for use in a particular problem domain. Typically, a DSL is more convenient, expressive, safe and usable within its intended domain, in return for being less general and less useful in other domains. Hence, DSLs are applied across many domains to alleviate software engineering problems such as programmer productivity, code efficiency, software variability, and software quality. Due to their diverse application domains and purposes, DSLs take many different forms, and DSL creators encounter diverse challenges.
In this thesis, we explore the design, implementation, and lifecycle of DSLs. Specifically, we develop a rather non-trivial DSL called Management Action Language (MAL) for the pension and life insurance domain together with a major software vendor.
Through a highly introspective process, we build on the lessons from this experience to draw conclusions about DSL design, implementation, and evolution.
We complement this work by sending a questionnaire to the creators of other DSLs to survey the creators’ experience.
First, we explore human-centred design and co-design of DSLs to ensure that our DSL, or any DSL, is usable by its intended users. We use our experiences with designing MAL to propose a two-phase human-centred design method and show that non-programming experts can be used generatively in a DSL design process.
Second, we explore DSL implementation, focusing on run-time performance and safety. Within the context of MAL, we show how we implemented a code generator that creates more efficient code than comparable handwritten code while providing compile-time guarantees on initialisation and reserve preservation.
Third, we survey the established practices in the lifecycle of DSLs through a questionnaire sent to designers of historical DSLs. We focus on different phases in a DSL’s lifecycle and show, among other things, that (a) we find no correlation between the level of user involvement in the design process and the level of programming experience of users of DSLs and (b) that most DSLs evolve after creation, and that handling this evolution affects the practical success of a DSL.
Finally and separately, within the context of so-called Dynamic Condition Response (DCR) graphs, a kind of DSL for describing workflows in organisations developed by Hildebrandt and Mukkamala, we describe our work towards providing static secrecy guarantees when the workflows adversarial parties that may seek to infer actor decisions intended to be private.
Original languageEnglish
PublisherIT-Universitetet i København
Number of pages135
ISBN (Print)978-87-7949-394-0
Publication statusPublished - 2022
SeriesITU-DS
Number198
ISSN1602-3536

Fingerprint

Dive into the research topics of 'The Design and Implementation of the Management Action Language and the Life Cycle of Other DSLs'. Together they form a unique fingerprint.

Cite this