A little bit of criticism: naming engineering conventions again

There is a small but potential risk to name your concept link declaration like 'properties', 'child', 'childRoles', 'referenceRoles' and so on. If you do that, your Java code wouldn't compile because any class generated from concept declaration is inherited from jetbrains.mps.smodel.SNode, which had already defined methods 'getProperties()', 'getChild()'... each with its own signature.

There are lots of workarounds existed. For example, it is possible to highlight name for your concept link in red if it may resulted in naming conflict.

What are plans of MPS Team about this subject?

Permanently deleted user


There are a lot of problems like that. I think they are only cosmetic ones. If you make mistake you code won't be complied and you'll understand what happens. I think it's ok for EAP version. But as MPS closes to beta and release error diagnostics will be improved.

This problem should be handled by typesystem framework. But now it's being rewritten.


we have new Constraints language which addresses such and other integrity issues. right now it doesn't allow to make assertions regarding a property values, but it is only matter of time.

Instead, it is now possible to assign the value-computation function to a property. That is what you wanted I guess (http://www.intellij.net/forums/thread.jspa?messageID=5104670?)

I've blogged a bit about the Constraint language: http://www.sergeydmitriev.com/mps/blog/archives/2006/06/mps_constraints.html



Yes, constraints language may solve the problem mentioned above.

Computed properties functionality is great model enhancement.

Thanks for your reply and for good news about MPS evolution.


Please sign in to leave a comment.