<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Two-Faced Data</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Vadim Zaytsev</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>vadim@grammarware.net</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Also Known As</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Raincode</institution>
          ,
          <country country="BE">Belgium</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>One data fragment has several alternative structural representations tailored toward specic data manipulation approaches. Concrete Syntax and Abstract Syntax simplifying concrete syntax to abstract syntax [20, 58] parsing [44], more than parsing [24, 30], parsing in a broad sense [61] object grammars [52] Interparadigmatic Data Binding COBOL OO Relational databases XML [35] OO Relational [13] CRUD OO [49] XML Data Binding XML to Java [37] XML to Haskell [6] XML to C# [38] GUI Data Binding generic GUIs [1] WebSocket-based data binding [23] Intermediate Representation support imperative and declarative idioms [34] multiple languages within one paradigm: FP [27], OO [11] implementation-geared [5, 42] validation-geared [9] and analysis-geared [22, 31] Views integrated personalised views in databases [48] model views [3, 4, 10] view-based software engineering [7, 46] architectural views [15, 51, 59]</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>When modelling or programming, people tend to think in terms of conceptual
constructs: inheritance (of classes), conformance (of models to metamodels),
conditional statement (programming), input (data ow, side eects) and
others. In practice these conceptual entities are represented as concrete elements:
in textual form, in graphical diagrams, in memory blocks, etc. Since the actual
solution has to be expressed in such elements, this notation exposed to the
language end user, has great impact on the eectiveness of both the solution and
the process of modelling or programming.</p>
      <p>
        Results from ontological analysis tell us that a mapping between a modelling
notation and an underlying domain model (in SE usually the
Bunge-WandWeber ontology [
        <xref ref-type="bibr" rid="ref57">57</xref>
        ]) should be bijective [
        <xref ref-type="bibr" rid="ref39 ref39 ref40">39, 39, 40</xref>
        ] to avoid the following issues:
Construct decit : when something that exists in the ontology (i.e., in
the mind of domain experts), has no counterpart in the modelling
notation. Notations with construct decit are called incomplete and have their
place in environments that are deliberately limited for reasons of security or
(sub)domain-specicity.
      </p>
      <p>
        Construct redundancy : when one conceptual entity can be modelled with
more than one notational construct that are identical or subtly dierent
from one another. Notations with construct overloaded are called unclear
and are advocated by ontological analysts to be defective. Construct
redundancy in programming languages often leads to discussions of taste and
conventions being imposed on top of the language. For example, a
functional language called Haskell [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] supports comprehensions and higher order
functions equally well, so map (\x-&gt;x*x) xs is equally acceptable, equally
performant and equally maintainable as [x*x | x &lt;- xs], and the choice is
up to the particular programmer. Other functional languages like Rascal [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]
have better support for comprehensions than for explicit mappings, so the
choice there has farther going consequences, known only to programmers
that reached certain anity with the language at hand.
      </p>
      <p>Construct overload : when one notational entity represents several
conceptual entities. Notations with this smell are a dierent kind of unclear :
they are merely slightly counter-intuitive to domain experts but give wrong
impressions to those who learn the domain through this notation. A famous
example nowadays is the Git version control framework that bundles
unrelated functionality: for instance, git reset is a command that, depending
on parameters, can simply unstage code changes (which means they will
not be included in the next commit) or undo several unpushed commits or
even irrecoverably wipe any pending changes away.</p>
      <p>Construct excess is said to happen when a modelling notation have
elements that do not have any correspondence in the domain model. Notations
frequently have construct excesses as practical shortcuts and quick hacks that
solve the problem at hand but are totally alien to the uninvolved domain
experts. Excessive constructs are never designed into a notation but nd
their way into it by the time of implementation, especially under deadline
pressure.</p>
      <p>
        Success stories from updatable views in databases [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], synchronised model
views [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], data integration [
        <xref ref-type="bibr" rid="ref43">43</xref>
        ], serialisation [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] and structure editors [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]
demonstrate how it can be useful to have several systematic representations of the same
underlying constructs [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. We argue that this pattern is universal to the entire
software language engineering and thus can be used across technical spaces
anywhere where a language has several user groups or application varieties.
      </p>
    </sec>
    <sec id="sec-2">
      <title>Applicability</title>
      <sec id="sec-2-1">
        <title>Use the Two-Faced Data pattern when</title>
        <p>You design a software language and must provide functionality in the entire
spectrum from parsing the textual input to advanced semantic consistency
validation like type checking.</p>
        <p>
          If you make your grammar too close to the desired conceptual
representation, you risk making it ambiguous, inecient for parsing and/or not
user friendly for the language users. Projectional language workbenches
deliberately choose this path due to their naturally powerful IDE
support [
          <xref ref-type="bibr" rid="ref25 ref55 ref56">25,55,56</xref>
          ], other approaches are lled with perils, unless they adopt
the same techniques [
          <xref ref-type="bibr" rid="ref53">53</xref>
          ].
        </p>
        <p>
          If you make it too close to the desired way of writing and reading
sentences in the language, you risk overburdening your traversals and
rewritings with unnecessary details concerning a particular textual
representation. Solutions without multiple faces usually include
conventions that allow to use one representation to mean multiple things at
once [
          <xref ref-type="bibr" rid="ref28 ref54">28, 54</xref>
          ] (e.g., using layout for pretty-printing but ignoring it for
parsing/matching).
        </p>
        <p>You want your software language to have both textual and visual concrete
syntax which are conceptually the same but technically get a dierent
representation each. Due to the natural ow of the textual representation
(usually left to right, character by character) and a much freer structure of
the visual syntax, elements that correspond to the same entities may not only
be represented dierently individually, but also appear in dierent order.</p>
        <p>
          The need for several notations of one domain-specic language is widely
known and acknowledged in practice [
          <xref ref-type="bibr" rid="ref18 ref36">18, 36</xref>
          ], but its foundations are
lagging somewhat behind.
        </p>
        <p>
          In general textual information is perceived by humans to be more
trustworthy [
          <xref ref-type="bibr" rid="ref50">50</xref>
          ] and is faster digestible [
          <xref ref-type="bibr" rid="ref45">45</xref>
          ], but with appropriate training
visual notations can be more eective and maintainable [
          <xref ref-type="bibr" rid="ref41 ref47">41, 47</xref>
          ].
Graphical models of text that take physical distance between words into
account [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] and consider the visual aspect of operations performed on
text [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] are an emerging eld of research without a readily available
cookbook of practically mature recipes.
        </p>
        <p>Structured data that you are working with, needs to be serialised for
storage, communication or backup.</p>
        <p>Using the existing textual syntax would mean losing the structure and
may imply future overhead and/or ambiguity in deserialising such data.
In practice people tend to develop a yet another format which
conceptually represents the same structure of the same data, but is more suitable
for marshalling and unmarshalling. Such a format can be a standalone
project but usually is a sublanguage of XML or JSON.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Structure</title>
    </sec>
    <sec id="sec-4">
      <title>Participants and Collaborations</title>
      <p>The same language (yellow box on the megamodel) can be dened by dierent,
possibly incomplete, metamodels, and thus the models that conform to them,
correspond to the same language instances, but belong to dierent technological
stacks and thus can be eectively used with dierent algorithms. Functions Fk
are used in a broad sense and can represent true functions like sorting or
traversals, as well as other data manipulation activities such as editing or validation.</p>
    </sec>
    <sec id="sec-5">
      <title>Implementation</title>
      <sec id="sec-5-1">
        <title>Consider the following implementation issues: If the faces of the data allow interaction, you need some set of bidirectional update mappings; these imply overhead which might outweigh the advantages of using the faces.</title>
        <p>
          One of the faces can be dominant within a domain for historical reasons and
so advanced that over the time it developed all necessary algorithms usually
associated with other faces e.g., concrete syntax in metaprogramming [
          <xref ref-type="bibr" rid="ref54">54</xref>
          ].
Some mapping need to bridge a semantic gap between faces that cannot
be fully bridged e.g., ADT vs OO [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ], even though many practically
sucing strategies exist [
          <xref ref-type="bibr" rid="ref35">35</xref>
          ].
        </p>
        <p>In scenarios with more than two faces it gets too complex to develop direct
mappings for each pair; in that case it is better to consider a star-shaped
infrastructure with one canonic representation which is capable of
synchronising with any of the other ones.</p>
        <p>
          When metamodels are well-dened and their dierences are explicitly
expressed, we can do coupled transformations [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ] that is, infer model-level
mappings from metamodel-level ones. This has been done for various
technical spaces: modelware [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ], grammarware [
          <xref ref-type="bibr" rid="ref60">60</xref>
          ], databases [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ], xmlware [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Sample Code</title>
      <sec id="sec-6-1">
        <title>Consider the following Rascal [29] code: data A = foo(bool) | bar(set[A] xs) ;</title>
        <p>It denes a piece of very simple abstract data type with two constructors. The
metaprogramming facilities provided by Rascal allow us to comfortably traverse
instances structured in such a way and perform computations:
visit(T)
{
visit(T)
{
}
}
foo(True) : cx += 1
bar(_) =&gt; foo(False)
(even more concise, len([1 | /foo(True) := T]) ), and in place rewritings:</p>
        <p>However, writing them to a le can only be done in one xed notation, and
reading back will not be smooth. For such actions, we need concrete syntax
for example, this one:
syntax A = foo: "FOO"?
| bar: "&lt;" {A ":"}+ "&gt;";</p>
        <p>Parsing any textual input with this concrete syntax denition is trivial in
Rascal with the use of parse(#A, ...) function. The resulting trees, however,
are somewhat clunky, contain too much information (who cares that we used
colons as a separator? should we really update the traversal code if the separator
changes in the future?) and can only be traversed in their default term form.
However, there is a built-in matching function called implode that can couple
the two:
T = implode(A, parse(#A, input))</p>
        <p>The implode function follows grammar production alternative labels and
match them to the constructors of the data type. Then, it maps the presence
of FOO text to a true value and the lack of it to a false value of the Boolean
argument of the foo constructor. Parse-guiding anti-ambiguity angle brackets
in the concrete syntax carry no structural meaning, so they are disregarded,
and the collection of inner entries is mapped to a set because that is what the
abstract data type expects (it could have been mapped to a list instead).</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Related Patterns</title>
      <sec id="sec-7-1">
        <title>Adapter; Bridge; Visitor; Interpreter [17].</title>
        <p>ACM</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>P.</given-names>
            <surname>Achten</surname>
          </string-name>
          ,
          <string-name>
            <surname>M. C. J. D. van Eekelen</surname>
            , and
            <given-names>M. J.</given-names>
          </string-name>
          <string-name>
            <surname>Plasmeijer</surname>
          </string-name>
          .
          <article-title>Compositional ModelViews with Generic Graphical User Interfaces</article-title>
          .
          <source>In Proceedings of the Sixth International Symposium on Practical Aspects of Declarative Languages</source>
          , volume
          <volume>3057</volume>
          <source>of LNCS</source>
          , pages
          <fpage>39</fpage>
          <lpage>55</lpage>
          . Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>C. C.</given-names>
            <surname>Aggarwal</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Zhao</surname>
          </string-name>
          .
          <article-title>Graphical Models for Text: a New Paradigm for Text Representation and Processing</article-title>
          .
          <source>In Proceedings of the 33rd International ACM SIGIR Conference on Research and Development in Information Retrieval</source>
          , pages
          <fpage>899</fpage>
          <lpage>900</lpage>
          . ACM,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>A.</given-names>
            <surname>Anjorin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rose</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Deckwerth</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>Sch rr. E cient Model Synchronization with View Triple Graph Grammars</article-title>
          .
          <source>In Proceedings of the 10th European Conference on Modelling Foundations and Applications</source>
          , volume
          <volume>8569</volume>
          <source>of LNCS</source>
          , pages
          <fpage>1</fpage>
          <lpage>17</lpage>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>M.</given-names>
            <surname>Antkiewicz</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          .
          <article-title>Design Space of Heterogeneous Synchronization</article-title>
          . In R. L mmel, J. Visser, and J. Saraiva, editors,
          <source>Revised Papers of the Second International Summer School on Generative and Transformational Techniques in Software Engineering</source>
          , volume
          <volume>5235</volume>
          <source>of LNCS</source>
          , pages
          <fpage>3</fpage>
          <lpage>46</lpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Z. M.</given-names>
            <surname>Ariola</surname>
          </string-name>
          and
          <string-name>
            <surname>Arvind. P-TAC: A Parallel Intermediate</surname>
          </string-name>
          <article-title>Language</article-title>
          .
          <source>In Proceedings of the Fourth Conference on Functional Programming Languages and Computer Architecture</source>
          , pages
          <fpage>230</fpage>
          <lpage>242</lpage>
          . ACM Press,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>F.</given-names>
            <surname>Atanassow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Clarke</surname>
          </string-name>
          , and
          <string-name>
            <surname>J. Jeuring.</surname>
          </string-name>
          <article-title>UUXML: A Type-Preserving XML Schema-Haskell Data Binding</article-title>
          .
          <source>In Proceedings of the Sixth International Symposium on Practical Aspects of Declarative Languages</source>
          , volume
          <volume>3057</volume>
          <source>of LNCS</source>
          , pages
          <fpage>71</fpage>
          <lpage>85</lpage>
          . Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          .
          <article-title>Orthographic Software Modelling: A Novel Approach to View-Based Software Engineering</article-title>
          .
          <source>In Proceedings of the Sixth European Conference on Modelling Foundations and Applications</source>
          , volume
          <volume>6138</volume>
          <source>of LNCS, page 1</source>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>F.</given-names>
            <surname>Bancilhon</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Spyratos</surname>
          </string-name>
          .
          <source>Update Semantics of Relational Views. TODS</source>
          ,
          <volume>6</volume>
          (
          <issue>4</issue>
          ):
          <fpage>557</fpage>
          <lpage>575</lpage>
          ,
          <year>1981</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>M.</given-names>
            <surname>Bozga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-C.</given-names>
            <surname>Fernandez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Ghirvu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Graf</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Krimm</surname>
          </string-name>
          , and
          <string-name>
            <surname>L. Mounier. IF:</surname>
          </string-name>
          <article-title>An Intermediate Representation and Validation Environment for Timed Asynchronous Systems</article-title>
          .
          <source>In Proceedings of the World Congress on Formal Methods in the Development of Computing Systems. Volume I ,</source>
          volume
          <volume>1708</volume>
          <source>of LNCS</source>
          , pages
          <fpage>307</fpage>
          <lpage>327</lpage>
          . Springer-Verlag,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>R.</given-names>
            <surname>Breu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Grosu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Huber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Rumpe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Schwerin</surname>
          </string-name>
          .
          <source>Systems, Views and Models of UML. In The Unied Modeling Language Technical Aspects and Applications</source>
          , pages
          <fpage>93</fpage>
          <lpage>108</lpage>
          . Physica-Verlag,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>J.</given-names>
            <surname>Chen</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Tarditi</surname>
          </string-name>
          .
          <article-title>A Simple Typed Intermediate Language for ObjectOriented Languages</article-title>
          . In J. Palsberg and M. Abadi, editors,
          <source>Proceedings of the 32nd Symposium on Principles of Programming Languages</source>
          , pages
          <fpage>38</fpage>
          <lpage>49</lpage>
          . ACM,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>S.</given-names>
            <surname>Conversy</surname>
          </string-name>
          .
          <article-title>Unifying Textual and Visual: A Theoretical Account of the Visual Perception of Programming Languages</article-title>
          .
          <source>In Proceedings of the Fourth Symposium on New Ideas in Programming and Reections on Software</source>
          , pages
          <fpage>201</fpage>
          <lpage>212</lpage>
          . ACM,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>W. R.</given-names>
            <surname>Cook</surname>
          </string-name>
          .
          <article-title>On Understanding Data Abstraction, Revisited</article-title>
          . In S. Arora and G. T. Leavens, editors,
          <source>Proceedings of the 24th Annual Conference on Object-Oriented Programming, Systems, Languages, and Applications</source>
          , pages
          <fpage>557</fpage>
          <lpage>572</lpage>
          . ACM,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. N.</given-names>
            <surname>Foster</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <surname>R.</surname>
          </string-name>
          <article-title>L mmel, A. Sch rr, and</article-title>
          <string-name>
            <given-names>J. F.</given-names>
            <surname>Terwilliger</surname>
          </string-name>
          . Bidirectional Transformations:
          <string-name>
            <given-names>A</given-names>
            <surname>Cross-Discipline Perspective</surname>
          </string-name>
          . In R. F. Paige, editor,
          <source>Proceedings of the Second International Conference on Theory and Practice of Model Transformations</source>
          , volume
          <volume>5563</volume>
          <source>of LNCS</source>
          , pages
          <fpage>260</fpage>
          <lpage>283</lpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. G.
          <string-name>
            <surname>El-Boussaidi</surname>
            ,
            <given-names>A. B.</given-names>
          </string-name>
          <string-name>
            <surname>Belle</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Vaucher</surname>
            , and
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Mili</surname>
          </string-name>
          .
          <article-title>Reconstructing Architectural Views from Legacy Systems</article-title>
          .
          <source>In Proceedings of the 19th Working Conference on Reverse Engineering</source>
          , pages
          <fpage>345</fpage>
          <lpage>354</lpage>
          . IEEE Computer Society,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. K. Fisher and
          <string-name>
            <given-names>R.</given-names>
            <surname>Gruber</surname>
          </string-name>
          . PADS:
          <article-title>A Domain-Speci c Language for Processing Ad Hoc Data</article-title>
          . In V. Sarkar and M. W. Hall, editors,
          <source>Proceedings of the 26th Conference on Programming Language Design and Implementation</source>
          , pages
          <fpage>295</fpage>
          <lpage>304</lpage>
          . ACM,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. E. Gamma,
          <string-name>
            <given-names>R.</given-names>
            <surname>Helm</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Johnson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Vlissides</surname>
          </string-name>
          . Design Patterns:
          <article-title>Elements of Reusable Object-Oriented Software</article-title>
          .
          <source>Addison-Wesley</source>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>M. Gogolla</surname>
            , L. Hamann, J. Xu,
            <given-names>and J. Zhang.</given-names>
          </string-name>
          <article-title>Exploring (Meta-)Model Snapshots by Combining Visual and Textual Techniques</article-title>
          .
          <source>Electronic Communications of the European Association of Software Science and Technology (EC-EASST)</source>
          ,
          <volume>41</volume>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>M.</given-names>
            <surname>Gogolla</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Lindow</surname>
          </string-name>
          .
          <article-title>Transforming Data Models with UML. In Knowledge Transformation for the Semantic Web</article-title>
          , pages
          <fpage>18</fpage>
          <lpage>33</lpage>
          . IOS Press,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>R. W.</given-names>
            <surname>Gray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. P.</given-names>
            <surname>Levi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. P.</given-names>
            <surname>Heuring</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. M.</given-names>
            <surname>Sloane</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W. M.</given-names>
            <surname>Waite</surname>
          </string-name>
          .
          <article-title>Eli: A Complete, Flexible Compiler Construction System</article-title>
          .
          <source>Communications of the ACM</source>
          ,
          <volume>35</volume>
          (
          <issue>2</issue>
          ):
          <fpage>121</fpage>
          <lpage>130</lpage>
          , Feb.
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. T. G rba, J.
          <string-name>
            <surname>-M. Favre</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Ducasse</surname>
          </string-name>
          .
          <article-title>Using Meta-Model Transformation to Model Software Evolution</article-title>
          . Electronic Notes in Theoretical Computer Science ,
          <volume>137</volume>
          (
          <issue>3</issue>
          ):
          <fpage>57</fpage>
          <lpage>64</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>J. Hayes</surname>
            ,
            <given-names>W. G.</given-names>
          </string-name>
          <string-name>
            <surname>Griswold</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Moskovics</surname>
          </string-name>
          .
          <article-title>Component Design of Retargetable Program Analysis Tools That Reuse Intermediate Representations</article-title>
          . In C. Ghezzi,
          <string-name>
            <given-names>M.</given-names>
            <surname>Jazayeri</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <surname>A</surname>
          </string-name>
          . L. Wolf, editors,
          <source>Proceedings of the 22nd International Conference on Software Engineering</source>
          , pages
          <fpage>356</fpage>
          <lpage>365</lpage>
          . ACM,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>M.</given-names>
            <surname>Heinrich</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Gaedke</surname>
          </string-name>
          .
          <article-title>Data Binding for Standard-based Web Applications</article-title>
          . In S. Ossowski and P. Lecca, editors,
          <source>Proceedings of the 27th Symposium on Applied Computing</source>
          , pages
          <fpage>652</fpage>
          <lpage>657</lpage>
          . ACM,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>A.</given-names>
            <surname>Herranz</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Nogueira. More Than</surname>
          </string-name>
          <article-title>Parsing</article-title>
          . In F. J. L. Fraguas, editor, V Jornadas Sobre Programacin y Lenguajes, Conferencia Espaaeola de
          <source>InformÆtica (CEDI'05)</source>
          , pages
          <fpage>193</fpage>
          <lpage>202</lpage>
          . Thomson Paraninfo,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>Z.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.-C.</given-names>
            <surname>Mu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Takeichi</surname>
          </string-name>
          .
          <source>A Programmable Editor for Developing Structured Documents Based on Bidirectional Transformations. Higher-Order and Symbolic Computation</source>
          ,
          <volume>21</volume>
          (
          <issue>1</issue>
          2):
          <fpage>89</fpage>
          <lpage>118</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <given-names>P.</given-names>
            <surname>Hudak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. Peyton</given-names>
            <surname>Jones</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Wadler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Boutel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Fairbairn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Fasel</surname>
          </string-name>
          ,
          <string-name>
            <surname>M. M. GuzmÆn</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Hammond</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Hughes</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Johnsson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Kieburtz</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Nikhil</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Partain</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Peterson</surname>
          </string-name>
          .
          <source>Report on the Programming Language Haskell: A Nonstrict</source>
          ,
          <source>Purely Functional Language Version 1.2. SIGPLAN Notices</source>
          ,
          <volume>27</volume>
          (
          <issue>5</issue>
          ):1
          <fpage>164</fpage>
          , May
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <given-names>S. L. P.</given-names>
            <surname>Jones</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Shields</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Launchbury</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. P.</given-names>
            <surname>Tolmach</surname>
          </string-name>
          .
          <article-title>Bridging the Gulf: A Common Intermediate Language for ML and Haskell</article-title>
          . In D. B. MacQueen and L. Cardelli, editors,
          <source>Proceedings of the 25th Symposium on Principles of Programming Languages</source>
          , pages
          <fpage>49</fpage>
          <lpage>61</lpage>
          . ACM,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28. L.
          <string-name>
            <surname>C. L. Kats</surname>
            ,
            <given-names>K. T.</given-names>
          </string-name>
          <string-name>
            <surname>Kalleberg</surname>
            , and
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Visser</surname>
          </string-name>
          .
          <article-title>Interactive Disambiguation of Meta Programs with Concrete Object Syntax</article-title>
          . In B. A.
          <string-name>
            <surname>Malloy</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Staab</surname>
          </string-name>
          , and M. van den Brand, editors,
          <source>Revised Selected Papers of the Third International Conference on Software Language Engineering</source>
          , volume
          <volume>6563</volume>
          <source>of LNCS</source>
          , pages
          <fpage>327</fpage>
          <lpage>336</lpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29. P. Klint, T. van der Storm, and
          <string-name>
            <surname>J. J. Vinju. EASY</surname>
          </string-name>
          <article-title>Meta-programming with Rascal</article-title>
          . In
          <string-name>
            <surname>J. M. Fernandes</surname>
          </string-name>
          , R. L mmel, J. Visser, and J. Saraiva, editors,
          <source>Revised Papers of the Third International Summer School on Generative and Transformational Techniques in Software Engineering</source>
          , volume
          <volume>6491</volume>
          <source>of LNCS</source>
          , pages
          <fpage>222</fpage>
          <lpage>289</lpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>J. Kort</surname>
            , R. L mmel, and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Verhoef</surname>
          </string-name>
          .
          <source>The Grammar Deployment Kit System Demonstration. Electronic Notes in Theoretical Computer Science</source>
          , LDTA Special Issue,
          <volume>65</volume>
          (
          <issue>3</issue>
          ):
          <fpage>117</fpage>
          <lpage>123</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <given-names>R.</given-names>
            <surname>Koschke</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.-F.</given-names>
            <surname>Girard</surname>
          </string-name>
          .
          <article-title>An Intermediate Representation for Reverse Engineering Analyses</article-title>
          .
          <source>In Proceedings of the Fifth Working Conference on Reverse Engineering</source>
          , pages
          <fpage>241</fpage>
          <lpage>250</lpage>
          . IEEE Computer Society,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32. R. L mmel.
          <source>Transformations Everywhere. Science of Computer Programming , 52:1 8</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33. R. L mmel and
          <string-name>
            <given-names>W.</given-names>
            <surname>Lohmann</surname>
          </string-name>
          . Format Evolution. In RETIS, volume
          <volume>155</volume>
          , pages
          <fpage>113</fpage>
          <lpage>134</lpage>
          . OCG,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34. R.
          <article-title>Lei a, M. K ster, and</article-title>
          <string-name>
            <given-names>S.</given-names>
            <surname>Hack</surname>
          </string-name>
          .
          <article-title>A Graph-Based Higher-Order Intermediate Representation</article-title>
          . In K. Olukotun,
          <string-name>
            <given-names>A.</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Hundt</surname>
          </string-name>
          , and J. Mars, editors,
          <source>Proceedings of the 13th International Symposium on Code Generation and Optimization</source>
          , pages
          <fpage>202</fpage>
          <lpage>212</lpage>
          . IEEE Computer Society,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35. R. L mmel and E. Meijer.
          <source>Mappings Make Data Processing Go 'Round</source>
          . In R. L mmel, J. Saraiva, and J. Visser, editors,
          <source>Revised Papers of the First International Summer School on Generative and Transformational Techniques in Software Engineering</source>
          , volume
          <volume>4143</volume>
          <source>of LNCS</source>
          , pages
          <fpage>169</fpage>
          <lpage>218</lpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <given-names>S.</given-names>
            <surname>Maro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-P.</given-names>
            <surname>Stegh fer</surname>
          </string-name>
          , A. Anjorin,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tichy</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L.</given-names>
            <surname>Gelin</surname>
          </string-name>
          .
          <article-title>On Integrating Graphical and Textual Editors for a UML Pro le Based Domain Speci c Language: An Industrial Experience</article-title>
          . In R. F.
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>D. D.</given-names>
          </string-name>
          <string-name>
            <surname>Ruscio</surname>
          </string-name>
          , and M. V lter, editors,
          <source>Proceedings of the Eighth International Conference on Software Language Engineering</source>
          , pages
          <fpage>1</fpage>
          <lpage>12</lpage>
          . ACM,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37.
          <string-name>
            <given-names>B.</given-names>
            <surname>McLaughlin</surname>
          </string-name>
          .
          <article-title>Java and XML Data Binding</article-title>
          .
          <article-title>Nutshell handbook</article-title>
          .
          <source>O'Reilly &amp; Associates</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          38. E.
          <string-name>
            <surname>Meijer</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Beckman</surname>
            , and
            <given-names>G. M.</given-names>
          </string-name>
          <string-name>
            <surname>Bierman</surname>
          </string-name>
          . LINQ:
          <article-title>Reconciling Object, Relations and XML in the</article-title>
          .
          <source>NET Framework</source>
          .
          <source>In SIGMOD Conference, page 706. ACM</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          39. D. L. Moody. The Physics of Notations:
          <article-title>A Scienti c Approach to Designing Visual Notations in Software Engineering</article-title>
          . In J. Kramer,
          <string-name>
            <given-names>J.</given-names>
            <surname>Bishop</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. T.</given-names>
            <surname>Devanbu</surname>
          </string-name>
          , and S. Uchitel, editors,
          <source>Proceedings of the 32nd International Conference on Software Engineering</source>
          , volume
          <volume>2</volume>
          , pages
          <fpage>485</fpage>
          <lpage>486</lpage>
          . ACM,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          40. D. L. Moody and J. van Hillegersberg.
          <article-title>Evaluating the Visual Syntax of UML: An Analysis of the Cognitive E ectiveness of the UMLFamily of Diagrams</article-title>
          . In D. Ga†evi¢, R. L mmel, and E. V. Wyk, editors,
          <source>Revised Selected Papers of the First International Conference on Software Language Engineering</source>
          , volume
          <volume>5452</volume>
          <source>of LNCS</source>
          , pages
          <fpage>16</fpage>
          <lpage>34</lpage>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          41.
          <string-name>
            <given-names>B.</given-names>
            <surname>Mora</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Garc</surname>
          </string-name>
          <string-name>
            <surname>a</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ruiz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Piattini</surname>
          </string-name>
          .
          <source>Graphical Versus Textual Software Measurement Modelling: An Empirical Study. Software Quality Journal</source>
          ,
          <volume>19</volume>
          (
          <issue>1</issue>
          ):
          <fpage>201</fpage>
          <lpage>233</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          42.
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Nelson</surname>
          </string-name>
          .
          <article-title>A Comparison of PASCAL Intermediate Languages</article-title>
          .
          <source>In Proceedings of the 1979 SIGPLAN Symposium on Compiler Construction</source>
          , pages
          <fpage>208</fpage>
          <lpage>213</lpage>
          . ACM,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          43.
          <string-name>
            <given-names>J. N.</given-names>
            <surname>Oliveira</surname>
          </string-name>
          .
          <article-title>Transforming Data by Calculation</article-title>
          . In R. L mmel, J. Visser, and J. Saraiva, editors,
          <source>Revised Papers of the Second International Summer School on Generative and Transformational Techniques in Software Engineering</source>
          , volume
          <volume>5235</volume>
          <source>of LNCS</source>
          , pages
          <fpage>134</fpage>
          <lpage>195</lpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          44.
          <string-name>
            <given-names>T.</given-names>
            <surname>Parr</surname>
          </string-name>
          and
          <string-name>
            <surname>K. Fisher.</surname>
          </string-name>
          <article-title>LL(*): The Foundation of the ANTLR Parser Generator</article-title>
          . In M. W. Hall and
          <string-name>
            <surname>D. A</surname>
          </string-name>
          . Padua, editors,
          <source>Proceedings of the 32nd Conference on Programming Language Design and Implementation</source>
          , pages
          <fpage>425</fpage>
          <lpage>436</lpage>
          . ACM,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          45.
          <string-name>
            <given-names>Z.</given-names>
            <surname>Shara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Marchetto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Susi</surname>
          </string-name>
          , G. Antoniol, and
          <string-name>
            <surname>Y.-G. GuØhØneuc.</surname>
          </string-name>
          <article-title>An Empirical Study on the E ciency of Graphical versus Textual Representations in Requirements Comprehension</article-title>
          .
          <source>In Proceedings of the 21st International Conference on Program Comprehension</source>
          , pages
          <fpage>33</fpage>
          <lpage>42</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          46.
          <string-name>
            <given-names>J. J.</given-names>
            <surname>Shilling</surname>
          </string-name>
          and
          <string-name>
            <given-names>P. F.</given-names>
            <surname>Sweeney</surname>
          </string-name>
          .
          <article-title>Three Steps to Views: Extending the ObjectOriented Paradigm</article-title>
          . In G. Bosworth, editor,
          <source>Proceedings of the Fourth Conference on Object-Oriented Programming: Systems, Languages, and Applications</source>
          , pages
          <fpage>353</fpage>
          <lpage>361</lpage>
          . ACM,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          47.
          <string-name>
            <given-names>D.</given-names>
            <surname>Stein</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Hanenberg</surname>
          </string-name>
          .
          <article-title>Comparison of a Visual and a Textual Notation to Express Data Constraints in Aspect-Oriented Join Point Selections: A Controlled Experiment</article-title>
          .
          <source>In Proceedings of the 19th International Conference on Program Comprehension</source>
          , pages
          <fpage>141</fpage>
          <lpage>150</lpage>
          . IEEE Computer Society,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref48">
        <mixed-citation>
          48.
          <string-name>
            <given-names>D. E.</given-names>
            <surname>Swartwout</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Fry</surname>
          </string-name>
          .
          <article-title>Towards the Support of Integrated Views of Multiple Databases: An Aggregate Schema Facility</article-title>
          . In E. I. Lowenthal and N. B. Dale, editors,
          <source>Proceedings of the Eighth ACM SIGMOD International Conference on Management of Data</source>
          , pages
          <fpage>132</fpage>
          <lpage>143</lpage>
          . ACM,
          <year>1978</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref49">
        <mixed-citation>
          49. D. Thomas.
          <source>The Impedance Imperative Tuples + Objects + Infosets = Too Much Stu ! Journal of Object Technology</source>
          ,
          <volume>5</volume>
          (
          <issue>2</issue>
          ):
          <fpage>7</fpage>
          <lpage>12</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref50">
        <mixed-citation>
          50.
          <string-name>
            <given-names>C. L.</given-names>
            <surname>Toma</surname>
          </string-name>
          . Perceptions of Trustworthiness Online:
          <article-title>The Role of Visual and Textual Information</article-title>
          .
          <source>In Proceedings of the 13th ACM Conference on Computer Supported Cooperative Work</source>
          , pages
          <fpage>13</fpage>
          <lpage>22</lpage>
          . ACM,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref51">
        <mixed-citation>
          51.
          <string-name>
            <given-names>Q.</given-names>
            <surname>Tu</surname>
          </string-name>
          and
          <string-name>
            <given-names>M. W.</given-names>
            <surname>Godfrey</surname>
          </string-name>
          .
          <article-title>The Build-Time Software Architecture View</article-title>
          .
          <source>In Proceedings of the 17th International Conference on Software Maintenance</source>
          , pages
          <fpage>398</fpage>
          <lpage>407</lpage>
          . IEEE Computer Society,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref52">
        <mixed-citation>
          52. T. van der Storm,
          <string-name>
            <given-names>W. R.</given-names>
            <surname>Cook</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Loh</surname>
          </string-name>
          .
          <article-title>The Design and Implementation of Object Grammars</article-title>
          .
          <source>Science of Computer Programming</source>
          ,
          <volume>96</volume>
          :
          <fpage>460</fpage>
          487,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref53">
        <mixed-citation>
          53. O. van
          <string-name>
            <surname>Rest</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Wachsmuth</surname>
            ,
            <given-names>J. R. H.</given-names>
          </string-name>
          <string-name>
            <surname>Steel</surname>
            ,
            <given-names>J. G. S</given-names>
          </string-name>
          , and
          <string-name>
            <given-names>E. Visser. Robust</given-names>
            <surname>Real-Time Synchronization</surname>
          </string-name>
          between Textual and Graphical Editors. In K. Duddy and G. Kappel, editors,
          <source>Proceedings of the Sixth International Conference on Theory and Practice of Model Transformations</source>
          , volume
          <volume>7909</volume>
          <source>of LNCS</source>
          , pages
          <fpage>92</fpage>
          <lpage>107</lpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref54">
        <mixed-citation>
          54. E. Visser.
          <article-title>Meta-programming with Concrete Object Syntax</article-title>
          .
          <source>In Proceedings of the Second International Conference on Generative Programming and Component Engineering</source>
          , volume
          <volume>2487</volume>
          <source>of LNCS</source>
          , pages
          <fpage>299</fpage>
          <lpage>315</lpage>
          . Springer,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref55">
        <mixed-citation>
          55.
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>V lter. Embedded Software Development with Projectional Language Workbenches</article-title>
          . In D. C. Petriu,
          <string-name>
            <given-names>N.</given-names>
            <surname>Rouquette</surname>
          </string-name>
          , and ystein Haugen, editors,
          <source>Proceedings of the 13th International Conference on Model Driven Engineering Languages and Systems</source>
          ,
          <string-name>
            <surname>Part</surname>
            <given-names>II</given-names>
          </string-name>
          , volume
          <volume>6395</volume>
          <source>of LNCS</source>
          , pages
          <fpage>32</fpage>
          <lpage>46</lpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref56">
        <mixed-citation>
          56. M. V lter, J. Siegmund,
          <string-name>
            <given-names>T.</given-names>
            <surname>Berger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Kolb. Towards</surname>
          </string-name>
          User-Friendly Projectional Editors. In B.
          <string-name>
            <surname>Combemale</surname>
            ,
            <given-names>D. J.</given-names>
          </string-name>
          <string-name>
            <surname>Pearce</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Barais</surname>
            , and
            <given-names>J. J</given-names>
          </string-name>
          . Vinju, editors,
          <source>Proceedings of the Seventh International Conference on Software Language Engineering</source>
          , volume
          <volume>8706</volume>
          <source>of LNCS</source>
          , pages
          <fpage>41</fpage>
          <lpage>61</lpage>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref57">
        <mixed-citation>
          57.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wand</surname>
          </string-name>
          and
          <string-name>
            <given-names>R. A.</given-names>
            <surname>Weber</surname>
          </string-name>
          .
          <article-title>An Ontological Model of an Information System</article-title>
          .
          <source>IEEE TSE</source>
          ,
          <volume>16</volume>
          (
          <issue>11</issue>
          ):
          <fpage>1282</fpage>
          <lpage>1292</lpage>
          ,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref58">
        <mixed-citation>
          58.
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Wile</surname>
          </string-name>
          .
          <article-title>Abstract Syntax from Concrete Syntax</article-title>
          . In W. R.
          <string-name>
            <surname>Adrion</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Fuggetta</surname>
            ,
            <given-names>R. N.</given-names>
          </string-name>
          <string-name>
            <surname>Taylor</surname>
            , and
            <given-names>A. I. Wasserman</given-names>
          </string-name>
          , editors,
          <source>Proceedings of the 19th International Conference on Software Engineering</source>
          , pages
          <fpage>472</fpage>
          <lpage>480</lpage>
          . ACM,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref59">
        <mixed-citation>
          59.
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Yeh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. R.</given-names>
            <surname>Harris</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Chase</surname>
          </string-name>
          .
          <article-title>Manipulating Recovered Software Architecture Views</article-title>
          . In W. R.
          <string-name>
            <surname>Adrion</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Fuggetta</surname>
            ,
            <given-names>R. N.</given-names>
          </string-name>
          <string-name>
            <surname>Taylor</surname>
            , and
            <given-names>A. I. Wasserman</given-names>
          </string-name>
          , editors,
          <source>Proceedings of the 19th International Conference on Software Engineering</source>
          , pages
          <fpage>184</fpage>
          <lpage>194</lpage>
          . ACM,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref60">
        <mixed-citation>
          60.
          <string-name>
            <given-names>V.</given-names>
            <surname>Zaytsev</surname>
          </string-name>
          .
          <article-title>Cotransforming Grammars with Shared Packed Parse Forests</article-title>
          .
          <source>Electronic Communications of the European Association of Software Science and Technology (EC-EASST)</source>
          ,
          <source>Graph Computation Models</source>
          ,
          <year>2016</year>
          . In print.
        </mixed-citation>
      </ref>
      <ref id="ref61">
        <mixed-citation>
          61.
          <string-name>
            <given-names>V.</given-names>
            <surname>Zaytsev</surname>
          </string-name>
          and
          <string-name>
            <given-names>A. H.</given-names>
            <surname>Bagge</surname>
          </string-name>
          .
          <article-title>Parsing in a Broad Sense</article-title>
          . In J. Dingel,
          <string-name>
            <given-names>W.</given-names>
            <surname>Schulte</surname>
          </string-name>
          , I. Ramos,
          <string-name>
            <given-names>S.</given-names>
            <surname>Abrahªo</surname>
          </string-name>
          , and E. Insfran, editors,
          <source>Proceedings of the 17th International Conference on Model Driven Engineering Languages and Systems (MoDELS</source>
          <year>2014</year>
          ) , volume
          <volume>8767</volume>
          <source>of LNCS</source>
          , pages
          <fpage>50</fpage>
          <lpage>67</lpage>
          . Springer, Oct.
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>