The Community for Technology Leaders
Green Image
Issue No. 05 - Sept.-Oct. (2015 vol. 32)
ISSN: 0740-7459
pp: 46-52
Markus Voelter , independent consultant
Jos Warmer , independent consultant
Bernd Kolb , itemis
ABSTRACT
Two innovations are enhancing programming languages' capabilities. First, modularity lets you combine independently developed languages without changing their respective definitions. A language is no longer a fixed quantity; you can extend it with domain-specific constructs as needed. Second, projectional editing lets you build editors and IDEs that don't require parsers. Such editors and IDEs support a range of tightly integrated notations, including textual, symbolic, tabular, and graphical notations. In addition, by avoiding parsers, they avoid grammar composition's well-known limitations. Three examples illustrate how these two innovations affect programming-language design. A set of modular extensions of C for embedded programming enables efficient code generation and formal analysis. A language for requirements engineering flexibly combines structured and unstructured (prose) data. Finally, a language for defining insurance rules uses mathematical notation. These examples all rely on the open source JetBrains MPS (Meta Programming System) language workbench. This article is part of a special issue on Software Architecture.
INDEX TERMS
Syntactics, Generators, Embedded software, Programming, Computer languages, Software engineering, Software development,software development, language engineering, language workbenches, projectional editing, domain-specific languages, programming languages, software engineering, MPS, Meta Programming System, mbeddr
CITATION
Markus Voelter, Jos Warmer, Bernd Kolb, "Projecting a Modular Future", IEEE Software, vol. 32, no. , pp. 46-52, Sept.-Oct. 2015, doi:10.1109/MS.2014.103
570 ms
(Ver 3.3 (11022016))