Tutorial 6
Generative Programming: Concepts and Experiences
Language Definition and Extension with MPS
Markus Völter
Abstract
Language definition and extension is a hot topic. Using modular
languages, where a program can use concepts from different language
modules as needed, promises significantly increased language usability as
well as an integration between general purpose (programming) and
domain-specific (modeling) concepts and tools.
JetBrains MPS is an open source language workbench that uses projectional
editing as opposed to parsing techniques. In MPS, languages are defined
via structure, projection rules, transformation rules and type systems.
In this tutorial I will provide a brief overview about how MPS works and
what you can do with it. I will show how to build an external DSL, how to
integrate the external DSL with Java, and how to extend an existing
programming language with a new statement. To round it off, I will demo
a non-trivial set of languages for embedded software development. 90% of
the tutorial will be live demos.
Note that even if you don't plan to work with MPS specifically, this tutorial
will provide a good overview of projectional editing.
Author biography
Markus Völter 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 writes (articles,
patterns, books) and speaks (trainings, conferences) on those subjects.
Contact him via voelter@acm@org or www.voelter.de.