Not much blogging lately, but I have a good excuse. I decided to take one last class here at UCLA — a programming language design lab run by Todd Millstein and Alan Kay. I’ve taken classes from both before, but this one is probably the most useful so far in terms forcing me to articulate ideas from my research.
I was already thinking I was going to need this, but now it’s clear that I need my own QVT/OCL implementation. I may not need all of it right away, but at minimum I needed a parser. A couple of months ago I used Medini QVT as a reference implementation to create a couple of demo transformations. Now I’ve gone through the OMG specs to extract the grammars and have created a single large antlr grammar. The QVT portion worked fine, but of course adding OCL introduced a lot of left recursion.
Enter OMeta, which can handle grammars that contain left recursion. Turns out that the author Alex Warth is participating in this design lab as well. He’s put a lot of work into a javascript version of OMeta. I would use it directly except that I want to have deep interaction with EMF and Subversion. And potentially a lot of other java code.
As of a few minutes ago, I think I have my solution: Implement a java wrapper for OMeta using Mozilla’s Rhino. We’ll see how cleanly I can wrap it.
I’ll try to be good about posting updates on this. I have some hard deadlines approaching, but I think this project is now in the critical path, so it’s likely that it will get done soonish.