JetBrain's Meta Programming System

30 views
Skip to first unread message

Gerald Squelart

unread,
Aug 23, 2011, 6:23:44 PM8/23/11
to XL programming language and runtime
Seems like a slow month... But I guess it's still summer holiday time
in the North and XL authors are busy with Taodyne!? :-)

I've just stumbled upon this:
http://www.i-programmer.info/news/98-languages/2927-meta-programming-system-20.html

"[MPS] allows you to work in a Domain Specific Language DSL that you
can invent as you go along."

Sounds like what XL is trying to do!

Did you guys know about it? What do you think?

Christophe de Dinechin

unread,
Sep 5, 2011, 4:16:59 AM9/5/11
to xlr-...@googlegroups.com
On 24 août 2011, at 00:23, Gerald Squelart wrote:

> Seems like a slow month... But I guess it's still summer holiday time
> in the North and XL authors are busy with Taodyne!? :-)

Yes, we are! This is an exciting time for us. We are focusing a lot of energy on getting results that look good and at acceptable frame rates. So the work on the compiler itself has been a bit slow, though if you look at recent revisions, you'll see that I've been somewhat active recently on type inference.

This looks very interesting. It's more oriented towards "high-level" stuff than XLR, but it seems to be fairly advanced and easy to use.


> "[MPS] allows you to work in a Domain Specific Language DSL that you
> can invent as you go along."
>
> Sounds like what XL is trying to do!

At a high level, yes. I'd say it's closer to what Intentional Programming is trying to achieve. XL is focusing more on a text-based approach and program transformations. For example, consider the following example http://www.jetbrains.com/mps/demos/screencast/lockstatement-language/buildingTheLanguage.html that adds a lock statement. Most of the time in that demo helps integrating "lock" statements in the IDE. It doesn't explain (as far as I can tell) how that lock statement transforms into anything useful.

In XL, you'd do something like this:

lock L:Lock, Body ->
acquire L
Body
release L

And that's basically it for adding a lock statement. We can do this all the way to machine instructions.


> Did you guys know about it? What do you think?

I didn't know about it, and it looks both quite exciting and mature. As I wrote above, it reminds me quite a bit of Intentional Programming. I would probably not use it because I find it "click-heavy", but many people will feel more comfortable with this approach than with XL because the IDE is integrated.


Thanks
Christophe

Reply all
Reply to author
Forward
0 new messages