Recovering Grammar Relationships for the Java Language Specification
Grammar convergence is a method that helps discovering relationships between different grammars of the same language or different language versions. The key element of the method is the operational, transformation-based representation of those relationships. Given input grammars for convergence, they are transformed until they are structurally equal. The transformations are composed from primitive operators; properties of these operators and the composed chains provide quantitative and qualitative insight into the relationships between the grammars at hand. This paper describes a refined method for grammar convergence, and the authors use it in a major study, where the authors recover the relationships between all the grammars that occur in the different versions of the Java Language Specification (JLS).