@MISC{Voelter_projectinga, author = {Markus Voelter and Jos Warmer and Bernd Kolb}, title = {Projecting a Modular Future}, year = {} }
Share
OpenURL
Abstract
Abstract. We describe two innovations in programming languages: mod-ularity and projectional editing. Language modularity refers to the ability to combine independently developed languages without changing their re-spective definitions. A language is not anymore a fixed quantity, instead it can be extended with domain-specific constructs as needed. Projectional editing refers to a technique of building editors and IDEs that avoid the need for parsers. They support a wide range of tightly integrated no-tations including textual, symbolic, tabular and graphical. In addition, by avoiding parsers, the well-known limitations of grammar composition are avoided as well. The article illustrates the consequences of these two innovations for the design of (programming) languages with three exam-ples. First, we discuss a set of modular extensions of C for embedded programming that enables efficient code generation and formal analysis. Second, we discuss a language for requirements engineering that flexibly combines structured and unstructured (prose) data. Third, we illustrate a language for defining insurance rules that makes use of mathematical notations. All examples rely on the open source JetBrains MPS language workbench.