Virtual Developer Modeler – Effortless textual Modeling for free

Virtual Developer

Virtual Developer Modeler is a modeling tool for textual modeling languages, developed by the Generative Software GmbH. It is one of the many possibilities to crea models as input for code generators that run on the Virtual Developer Platform.

When you want to develop a code generator, you better keep the effort to develop a modeling language to a minimum. Turnaround times should be short when you make changes to your language and try them out in the modeling tool. And when you want to use a code generator, you better keep the effort to learn a modeling language and to use a modeling tool to a minimum. And ideally, the modeling tool is free of charge.

The Virtual Developer Modeler combines these requirements. It is free of charge and easy to use. Modeling feels similar to programming, only much simpler. You don’t need to be a developer to use the tool and the modeling languages. And you can even use a simple text editor to work with models. With this you have maximum flexibility.

Technical Background and Motivation

EMF and Xtext (or EMFText) ease the creation of DSL tools a lot (DSL = Domain Specific Language). However, when you create N different DSLs, you end up with N grammars, N parsers and N editors. All of those code-bases need to be maintained and deployed separately. If you need to use one DSL within another, things are getting even more complex.

In his keynote at the Codegeneration 2013 conference, Sven Efftinge (itemis) says in relation to the creation of external DSLs with Xtext (start from 34:24): “There is some problem with this, which is, like, the turnarounds you enjoy, when you work with code-generation technologies …” and also “… you change something in the grammar, you generate the language, then you have to install the tools and to deploy them to all your clients. That’s feasible, but not like something you would call light.”.

That’s exactly what we experienced while we were developing DSLs and DSL Tooling with EMF/EMFText to be used for our own code-generators and code-generators for our customers. We came up with a simple yet powerful solution: A generic DSL, parser and editor. The generic DSL includes concepts/keywords to define internal DSLs that are then handled by the generic parser and editor. A similar solution can be developed by anybody who is familiar with EMF and Xtext (or EMFText). And if all you need is your own DSL and DSL tooling, you can simply use an existing generic DSL, parser and editor like the one we came up with.