using a DSL outside from MPS


is it possible to use a DSL created in MPS outside from it?

If possible I would prefer Eclipse or something similar like this.

The Idea is, to use it with some Java-Programs I created before.

Please quote all possibilities.

Kindly regards,



Ok, over IntelliJ Plugin I knew, but aren't there more convenient ways or alternatives ?

I saw the option to build a java standalone IDE, what does this mean exactly ? Creating an own user interface ?

Thank you in advance.  


No, it just means that you package all your languages in your own MPS distribution. This distribution then includes all your dsls.


Here is an example of how it looks a standalone IDE:


Hi Volker,

What do you expect when you want to "export a DSL from MPS to some other program"?

You can see an MPS language as a specification of a number of aspects (structure, type system, constraints, editors, etc.) of a language and then if you build this language, an IDE for this language is generated. The IDE is a plugin in MPS (and heavily relies on the infrastructure framework of MPS to provide its IDE support), which is again built on top of IDEA, so MPS uses most of the infrastructure from IDEA, which makes IDEA a perfect candidate to be able to export a plugin to it.

You mentioned Eclipse as an example to have MPS IDE support for, but that is not so trivial, since IDEA (and hence MPS) and Eclipse are two infrastructure IDEs that have their own (sometimes opposite) visions of how an IDE should look like, so it would not be so trivial to just "embed an MPS instance in an Eclipse plugin". Of course , Eclipse is "just a java program" and MPS is "just a java program", but the integration problems you get are very similar to integrating two separate GUI frameworks, so you'd have to know how you embed elements from the one in the other. As far as I know, this has not been done yet and I didn't see too much incentive in people yet.

That being said, you can imagine all kinds of integrations like interfacing with EMF or parsing/generating Xtext DSLs, which can cover parts of what an MPS DSL covers. It would really depend on your use case, so maybe you can describe your concrete use case and then see if people have some suggestions for it?




Please sign in to leave a comment.