Language Modularization and Composition with Projectional Language Workbenches illustrated with MPS

Markus Völter, Konstantin Solomatov. Language Modularization and Composition with Projectional Language Workbenches illustrated with MPS. In Mark G. J. van den Brand, Brian Malloy, Steffen Staab, editors, Software Language Engineering, Third International Conference, SLE 2010, Eindhoven, The Netherlands, October 12-13, 2010, Revised Selected Papers. Lecture Notes in Computer Science, pages 383-430, Springer, 2010. [doi]

Abstract

The language community has had a discussion about different styles of languages for a long time: big languages with many specific concepts (ABAP, Cobol), or small languages with few, but very powerful and orthogonal concepts (Lisp, Smalltalk)? With the advent of projectional language workbenches a new class of language becomes possible that can combine the best of both approaches: modular languages. Modular Languages use a relatively small general-purpose core and can be extended with more (domain specific) concepts as needed. Projectional language workbenches support this approach by alleviating the problems of language composition for parser-based languages by not using grammars and parsers at all. They also enable IDE extension as a side benefit. In this paper we argue why modular languages are useful and illustrate the idea with a couple of small examples. We also present a number of language composition techniques for JetBrains MPS, an open source projectional language workbench.