Textual notations for modeling languages are becoming increasingly popular (you just need to see the growing list of textual UML tools) and I do believe they are useful in many scenarios (sorry, but I don’t buy they are always better! graphical notations have their place and are difficult to beat as the quickest way to play around with some type of models, textual modeling tools are able to render the graphical counterparts but few of them offer interactivity on the graphical renderization).

What I didn’t know is that programmers (well, at least one of them but a very respected one) want the same but in the opposite direction, they would like to have the ability of use visual or table-based or … notations to write their programs.

At least on this we agree, concrete and abstract syntaxes should be kept separated so that we can use the best concrete syntax (either graphical, textual or any kind of mixture we can think of) for each specific scenario/application.

An entirely different approach is the one taken by JetBrains MPS. To avoid forcing users to use a specific concrete syntax, they decided to just avoid concrete syntaxes at all. When writing an MPS program, the editor is always directly modifying its abstract syntax tree. To see an example of DSL where we used MPS ourselves, see our work on modeling self-adaptative IoT architectures.

Want to build better software faster?

Want to build better software faster?

Read about the latest trends on software modeling and low-code development

You have Successfully Subscribed!

Pin It on Pinterest

Share This