Getting all these huge Java grammars to converge was not easy. We are still learning how to do this properly. We are still working on our transformation language, but we feel the results are good enough to go public now. The magic thing about grammar convergence is that it pushes you to necessarily find all the details of grammar variation. Arguably, grammar convergence should be more automatic. However, by asking you to make the transformation decisions, it helps you to understand the result.
From now on, suites of related grammars should have no excuse to be flawed and close-lipped as far as their relationships go.
PS: Now that I repaired the link I can as well put the abstract here.
Java is Not Syntax-safe — Apparently
- Ralf Lämmel and Vadim Zaytsev
Using a mechanized process, we have reverse-engineered the
relationships between the 6 different grammars that are contained in
3 versions of the Java Language Specification (JLS). To this end, we
have extracted the grammars from (the HTML representation of) the
JLS, and we have systematically resolved or captured all accidental
or intended differences by grammar transformations. The project
reveals a considerable number of problems with the grammars such as
productions that did not define the intended language.