9b4c8bbb5d4b1d12.tex
1: \begin{abstract}
2:   Grammar convergence is a method that helps discovering relationships
3:   between different grammars of the same language or different language
4:   versions. The key element of the method is the operational,
5:   transformation-based representation of those relationships. Given
6:   input grammars for convergence, they are transformed until they are
7:   structurally equal. The transformations are composed from
8:   primitive operators; properties of these operators and the composed
9:   chains provide quantitative and qualitative insight into the
10:   relationships between the grammars at hand.
11: 
12:   We describe a refined method for grammar convergence, and we use it
13:   in a major study, where we recover the relationships between all the
14:   grammars that occur in the different versions of the Java Language
15:   Specification (JLS). The relationships are represented as grammar
16:   transformation chains that capture all accidental or intended
17:   differences between the JLS grammars. This method is mechanized and
18:   driven by nominal and structural differences between pairs of
19:   grammars that are subject to asymmetric, binary convergence
20:   steps. 
21: 
22:   We present the underlying operator suite for grammar transformation
23:   in detail, and we illustrate the suite with many examples of
24:   transformations on the JLS grammars. We also describe the extraction
25:   effort, which was needed to make the JLS grammars amenable to
26:   automated processing. We include substantial metadata about the
27:   convergence process for the JLS so that the effort becomes
28:   reproducible and transparent.
29: %
30: \keywords{grammar convergence \and grammar transformation \and grammar recovery \and grammar extraction \and language documentation}
31: % \PACS{PACS code1 \and PACS code2 \and more}
32: % \subclass{MSC code1 \and MSC code2 \and more}
33: \end{abstract}
34: