Creating a new Language

I've recently found out about new 9.0 release and open sourcing it, Congratulations!

For a long time I was playing with idea of creating a new language, which will be compiled to Java. What IDEA has to offer me in creating it? Should I use MPS or just Community IDEA will be enough? What if I might need to work with graphics, like some simple GUI builder or UML class diagram?

3 comments
Comment actions Permalink

Hello Sergio,

The approaches of MPS and IDEA to language support are very different. MPS
is essentially a "closed world". You define your language in terms of MPS
concepts and relationships, store your programs in MPS' format, edit it in
MPS editors, and only in the end generate code (Java or any other language)
from it. For this, you get a lot of stuff for free (you don't need to write
a parser or an IDE plugin, for example).

On the other hand, IDEA lets you write an IDE plugin for a regular language,
which is stored in ordinary text files and compiled with an ordinary compiler.

So you should use the right tool depending on what approach you wish to take.
(It's also possible to use both - use MPS for rapid prototyping of language
design concepts, and then write a regular compiler and a plugin for IDEA.)

I've recently found out about new 9.0 release and open sourcing it,
Congratulations!

For a long time I was playing with idea of creating a new language,
which will be compiled to Java. What IDEA has to offer me in creating
it? Should I use MPS or just Community IDEA will be enough?


--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Thank you, Dmitry, for quick reply,

What is the MPS form in which I'll have to store my programms? Will I be able to sumbit MPS programs to versioning system? What about licensing, willl I be able to sell a product created in MPS?

0
Comment actions Permalink

Hello Sergio,

MPS has a custom XML-based format for storing programs. It includes built-in
support for convenient storing of programs in a VCS (diff and merge are performed
in terms of program structure, not as raw XML). MPS itself is available under
the Apache 2 license, and no restrictions are imposed on the licensing of
products creating with MPS.

Thank you, Dmitry, for quick reply,

What is the MPS form in which I'll have to store my programms? Will I
be able to sumbit MPS programs to versioning system? What about
licensing, willl I be able to sell a product created in MPS?

---
Original message URL:
http://www.jetbrains.net/devnet/message/5252579#5252579

--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0

Please sign in to leave a comment.