Try MPS Beta With Calculator Language Tutorial

It is a very exciting moment for us because we just released Beta version of MPS. Based on all the feedback on the Beta we plan to release MPS 1.0 in early 2009.

MPS is quite different from what we’ve all known before so, in order to ease the learning curve of MPS for new users, we’ve created a Tutorial. In this tutorial we create a simple language for programmer’s income calculator according to different development rates.

In the end it generates a Java Swing application. The tutorial covers a wide range of topics, and completing it will teach you how to create non-trivial languages in MPS. It teaches defining a language syntax, editor, generator, constraints and typesystem. It also demonstrates an important feature of MPS — language extension.

We are still working on improving the tutorial, but we think it’s already quite useful to get familiar with main MPS’ concepts and techniques.

Even though completing the tutorial takes a significant amount of effort and time: about 2 hours, you will be rewarded with the skills needed to create real languages in MPS. If you have any thoughts about improving this tutorial or have questions about it or MPS, feel free to post your comments here or to our discussion forum.

-JetBrains MPS Team

Comments below can no longer be edited.

8 Responses to Try MPS Beta With Calculator Language Tutorial

  1. Avatar

    Sebastien Arbogast says:

    December 10, 2008

    That’s just the best news of the week! Too bad there’s no session to launch it at Devoxx…

  2. Avatar

    Sebastien Arbogast says:

    December 11, 2008

    I’m sorry not to post this to the iscussion forums but I can’t seem to log into it.

    I’m kind of stuck in the middle of the Calculator tutorial because there seems to be an error in the “Implementing generator” section. The image after “Go to mapping and add this:” is the same as the previous one (image082) so it doesn’t give much information about what to do.

  3. Avatar

    skostik says:

    December 11, 2008

    Thank you for your feedback. We will fix this issues ASAP.

    You need to create a mapping label with a name InputFieldDeclaration. With type InputField -> FieldDeclaration. Take a look at the following screenshot:

  4. Avatar

    Sebastien Arbogast says:

    December 11, 2008

    Thanks a lot. I managed to move forward but there seems to be another trick. I don’t really understand what I’m doing here but at some point there is the following instructions:

    “Now let’s do the same thing with output fields. Again, we need to create the initialization code, and surround it with a $LOOP$ macro. Create a label for field declaration and put it on outputField’s $LOOP$. Then we need to use this label to create a reference. Your code in the template should look like this after making these changes : ”

    But if I add a reference macro to outputField, the generated code is this.null. If I leave it without any reference macro, the generated code is correct: this.outputField0.

    Did I do something wrong or something?

  5. Avatar

    skostik says:

    December 12, 2008

    Hello, Sebastien.

    Did you regenerate your generator?
    What code did you put in reference macro?
    Did you put OutputFieldDeclaration label on declaration of output fields?

  6. Avatar

    Sebastien Arbogast says:

    December 12, 2008

    I managed to get my account back on Clearspace so I moved this discussion back there:

  7. Avatar

    Santiago Tapia says:

    December 17, 2008

    Congratulations, I downloaded the tool last week and it is impressive.

    I have only tested it for a few hours using the tutorial, nevertheless I would like to make a few comments:
    * It is quite quite slow. Have you consider any other language? I think it is written in Java; another language may be faster.
    * The editor it is not very friendly, besides most programmer use to type very fast, I think it would be convinient to be able to write directly in plain text.

  8. Avatar

    jhon says:

    January 12, 2009

    I would like to make a few comments:
    * It is quite quite slow. Have you consider any other language? I think it is written in Java; another language may be faster. programming required a lot of skill and knowledge you can get information from this,

Discover more