For Episode 200 of Software Engineering Radio, Diomidis Spinellis interviews Markus Völter, the podcast’s founder. Markus works as an independent researcher, consultant, and coach for itemis AG in Stuttgart, Germany. His focus is on software architecture, model-driven software development and domain specific languages as well as on product line engineering. Markus also regularly publishes articles, papers, books, and patterns, and speaks at national and international conferences. In this interview Markus discusses language design and domain specific languages (DSLs). DSLs eliminate a lot of boilerplate code, but, more importantly, they allow us to check diverse properties of the code that are relevant to the specific domain, for instance that all members of a product line support some key functions. However, DSLs appear to need considerable effort to develop. This can be addressed by language workbenches: frameworks that help us efficiently develop languages and families of inter-operating languages. Apart from parsing, language definition involves type systems, transformation to other languages, IDE support, data flow analysis, version control integration, debugging, and refactoring. Many of these elements can be handled by the language workbench. In that area, projectional editors — where the program is entered in a constrained manner — allow the same program to be presented in different ways (for example, as a table or a diagram), where the code is always a correct model of some internal representation. The interview ends with a discussion on language design, where Markus discusses the difference between language readability and writability.
- Markus Völter: http://voelter.de
- DSL Engineering Book: http://dslbook.org
- mbeddr: http://mbeddr.com
- JetBrains MPS: http://jetbrains.com/mps
Recording Venue: Skype / Audacity
Guest: Markus Völter