I have used domain-specific languages to empower non-programmers in healthcare, finance, aerospace, automotive and public administration for years. My approach relies on growing the DSL from a functional programming core, combining the flexibility and power of an algorithmic language with domain-specific constructs that range from temporal data types, state machines and data models to polymorphic dispatch between versions of calculation rules. I rely on the open source MPS workbench to define the languages and their IDE. I am looking to incremental model transformations to desugar domain-specific constructs back to a minimal core language in realtime. That core language will have an interpreter for in-IDE execution and a compiler for deployment. The language will be integrated with formal methods to verify properties of programs, enabling advanced analyses for DSL users. In this talk, I will demo some existing DSLs, provide an illustration of how they are built, and demo prototypes of the future approach while discussing their integration with formal methods.
Markus Voelter works as a language engineer, bridging the gap from industry, business and science domains to software systems. He designs user-friendly languages, implements analyses, tools and IDEs, and architects backends based on interpreters and generators. He also workson meta-tools for language engineering. Markus publishes papers and books on the subject and regularly speaks at conferences world-wide. Markus has a diploma in technical physics from FH Ravensburg-Weingarten and a PhD in computer science from TU Delft.