Grammar Convergence -- another method for Software Language Engineers
I have turned a bit too much into an org animal over the last year or so: several conference organizations, special issues in journals, way too many PC member ships (in fact, there are too many workshops that are like mini conferences). Add to this that the switch to a full(time) German Professor ruins all previous working habits. Now that I have seen the “dark side” (not speaking of any big corporation here), I even more admire those folks in academia who do loads of quality courses, and still do substantial research – perhaps even with getting their own hands dirty. Anyway, I guess, this is the reality shock that you can’t avoid when you switch from industrial research (or before that, academic research with a way lower teaching load) to the mode of a university teacher of the kind of a German Professor. Not sure why anyone would do this except for the “Anstellung auf Lebenszeit”. (I can imagine a few more reasons but I save you my sarcasm.)
My colleagues keep telling me that things get better, and arguably, I might have arrived at the turning point. Of great help is here that Vadim Zaytsev (a PhD student of X and me from Amsterdam; Vadim is getting closer to the finish line) has joined the software-languages team in Koblenz last spring. This is particularly exciting because he has profound background in grammarware engineering – a topic that I have been talking about a lot over the last few years without delivering any new stuff except perhaps for the various X/O/R papers. For the last 3 months, we have been working on some grammarware engineering activities. We have been hacking in the best sense of the word. Today, we are proud to reveal our work on “grammar convergence”.
I have just uploaded an intro paper on grammar convergence to my website, but expect some more stuff over the next few weeks and months. (This paper has just been submitted, and your feedback is welcome.) I quote from the conclusion of the paper: “If unit testing is the simple, pragmatic, and effective method to generally validate the I/O behavior of software modules, then grammar convergence is the simple, pragmatic, and effective method to keep scattered grammar knowledge in sync. In addition, the method can be used to capture the intended or the accidental differences between instances of scattered grammar knowledge. Further, grammar convergence also applies at the instance level (populated by XML trees, derivation trees, parse trees, etc.). That is, it can compare and converge data from different software artifacts.”
Final plug: Are you attending SLE 2008 – the First International Conference on Software Language Engineering? It’s end of September in Toulouse (which is in France, for geographically challenged readers). The scientific quality of the event taken for granted, let me mention that I have heard of phenomenal cuisine aspects. Please consider attending. This conference on Software Language Engineering unites some communities that previously had mainly workshops as their forum. Imagine this: we had 100+ abstract submissions for this first iteration of the conference. Well, 90 sharp actually made the deadline in the end and submitted a proper paper. So we will have 18 papers over 2 days in the enjoyable surroundings of Toulouse and the MODELS conference with its various workshops – many of them also relevant for Software Language Engineers. Looking at the program, I see folks with background in refactoring, compiler construction, programming languages, declarative programming and executable specification, visual languages, modeling languages, formal methods, grammar-based programming, software transformation, software re- and reverse engineering, and model-driven development. Of course, I am biased, but this is a conference where I am sure that my broad interests are sufficient to appreciate each and every paper. The key is that all presentations assemble around the notion of software language engineering.