<?xml version="1.0" encoding="utf-8"?>
<raweb xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" year="2014">
  <identification id="ateams" isproject="true">
    <shortname>ATEAMS</shortname>
    <projectName>Analysis and Transformation based on rEliAble tool coMpositionS</projectName>
    <theme-de-recherche>Architecture, Languages and Compilation</theme-de-recherche>
    <domaine-de-recherche>Algorithmics, Programming, Software and Architecture</domaine-de-recherche>
    <datecreation>2009 July 01</datecreation>
    <structure_exterieure type="Organism">
      <libelle>Centrum Wiskunde &amp; Informatica</libelle>
    </structure_exterieure>
    <UR name="Lille"/>
    <keywords>
      <term>Programming Languages</term>
      <term>Formal Methods</term>
      <term>Domain-specific Languages</term>
      <term>Software Engineering</term>
      <term>Meta-modeling</term>
    </keywords>
    <moreinfo/>
  </identification>
  <team id="uid1">
    <person key="ateams-2014-idm29392">
      <firstname>Jurgen</firstname>
      <lastname>Vinju</lastname>
      <categoryPro>Chercheur</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Team leader, Centrum Wiskunde &amp; Informatica, Professor</moreinfo>
    </person>
    <person key="ateams-2014-idm28104">
      <firstname>Paul</firstname>
      <lastname>Klint</lastname>
      <categoryPro>Chercheur</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Centrum Wiskunde &amp; Informatica, Professor</moreinfo>
    </person>
    <person key="ateams-2014-idm26760">
      <firstname>Tijs</firstname>
      <lastname>Van Der Storm</lastname>
      <categoryPro>Chercheur</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Centrum Wiskunde &amp; Informatica</moreinfo>
    </person>
    <person key="ateams-2014-idm25488">
      <firstname>Jan</firstname>
      <lastname>Van Eijck</lastname>
      <categoryPro>Chercheur</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Centrum Wiskunde &amp; Informatica</moreinfo>
    </person>
    <person key="ateams-2014-idp66472">
      <firstname>Maarten</firstname>
      <lastname>Dijkema</lastname>
      <categoryPro>Technique</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Centrum Wiskunde &amp; Informatica</moreinfo>
    </person>
    <person key="ateams-2014-idp67736">
      <firstname>Bert</firstname>
      <lastname>Lisser</lastname>
      <categoryPro>Technique</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Centrum Wiskunde &amp; Informatica</moreinfo>
    </person>
    <person key="ateams-2014-idp69000">
      <firstname>Sandrine</firstname>
      <lastname>Meilen</lastname>
      <categoryPro>Assistant</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Inria</moreinfo>
    </person>
    <person key="ateams-2014-idp70232">
      <firstname>Ali</firstname>
      <lastname>Afroozeh</lastname>
      <categoryPro>AutreCategorie</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Centrum Wiskunde &amp; Informatica</moreinfo>
    </person>
    <person key="ateams-2014-idp71448">
      <firstname>Pablo</firstname>
      <lastname>Inostroza Valdera</lastname>
      <categoryPro>AutreCategorie</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Centrum Wiskunde &amp; Informatica</moreinfo>
    </person>
    <person key="ateams-2014-idp72728">
      <firstname>Anastasia</firstname>
      <lastname>Izmaylova</lastname>
      <categoryPro>AutreCategorie</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Centrum Wiskunde &amp; Informatica</moreinfo>
    </person>
    <person key="ateams-2014-idp74000">
      <firstname>Davy</firstname>
      <lastname>Landman</lastname>
      <categoryPro>AutreCategorie</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Centrum Wiskunde &amp; Informatica</moreinfo>
    </person>
    <person key="ateams-2014-idp75272">
      <firstname>Ashim</firstname>
      <lastname>Shahi</lastname>
      <categoryPro>AutreCategorie</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Centrum Wiskunde &amp; Informatica</moreinfo>
    </person>
    <person key="ateams-2014-idp76544">
      <firstname>Michael</firstname>
      <lastname>Steindorfer</lastname>
      <categoryPro>AutreCategorie</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Centrum Wiskunde &amp; Informatica</moreinfo>
    </person>
    <person key="ateams-2014-idp77816">
      <firstname>Jouke</firstname>
      <lastname>Stoel</lastname>
      <categoryPro>AutreCategorie</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Centrum Wiskunde &amp; Informatica</moreinfo>
    </person>
    <person key="ateams-2014-idp79088">
      <firstname>Atze</firstname>
      <lastname>Van Der Ploeg</lastname>
      <categoryPro>AutreCategorie</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Centrum Wiskunde &amp; Informatica</moreinfo>
    </person>
    <person key="ateams-2014-idp80368">
      <firstname>Riemer</firstname>
      <lastname>Van Rozen</lastname>
      <categoryPro>AutreCategorie</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Centrum Wiskunde &amp; Informatica</moreinfo>
    </person>
  </team>
  <presentation id="uid2">
    <bodyTitle>Overall Objectives</bodyTitle>
    <subsection id="uid3" level="1">
      <bodyTitle>Presentation</bodyTitle>
      <p>Software is very complex, and it seems to become more complex every year.
Over the last decades, computer science has delivered various insights how to
organize software better. Via structured programming, modules, objects,
components and agents, these days software systems are more and more evolving
into “systems of systems” that provide services to each other. Each system is
large, uses incompatible — new, outdated or non-standard — technology and
above all, exhibits failures.</p>
      <p>It is becoming more and more urgent to analyze the properties of these
complicated, heterogeneous and very large software systems and to refactor and
transform them to make them simpler and to keep them up-to-date. With the
plethora of different languages and technology platforms it is becoming very
difficult and very expensive to construct tools to achieve this.</p>
      <p>The main challenge of ATEAMS is to address this combination of a need for all
kinds of novel analysis and transformation tools and the existence of the
diversity of programming environments. We do this by investing in a virtual
laboratory called “Rascal”. It is a domain specific programming language for
source code analysis, transformation and generation. Rascal is programming
language parametric, such that it can be used to analyze, transform or
generated source code in any language. By combining concepts from both program
analysis and transformation into this language we can efficiently experiment
with all kinds of tools and algorithms.</p>
      <p>We now focus on three sub-problems. Firstly, we study software analysis: to
extract information from existing software systems and to analyze it. The
extracted information is vital to construct sound abstract models that can
be used in further analysis. We apply these extraction techniques now to
analyze (large bodies of) source code: finding bugs and finding the causes
of software complexity.</p>
      <p>Secondly, we study refactoring: to semi-automatically improve the quality
of a software system without changing its behavior. Refactoring tools are a
combination of analysis and transformations. Implementations of refactoring
tools are complex and often broken. We study better ways of designing
refactorings and we study ways to enable new (more advanced and useful)
refactorings. We apply these refactorings now to isolate design choices in
large software systems and compare systems that are equal except a single
design choice.</p>
      <p>Finally, we study code generation from domain specific languages
(DSLs). Here we also find a combination of analysis and
transformation. Designing, implementing and, very importantly,
maintaining DSLs is costly. We focus on application areas such as
Computational Auditing, Game Economies, and Core Banking to experiment
with this subject. In Computational Auditing we are focusing on
modeling interactive questionnaires. The Game economies domain
involves modeling and verifying the dynamic behaviour of game
play. Core banking requires the formal modeling of financial services
and products.</p>
    </subsection>
  </presentation>
  <fondements id="uid4">
    <bodyTitle>Research Program</bodyTitle>
    <subsection id="uid5" level="1">
      <bodyTitle>Research method</bodyTitle>
      <p>We are inspired by formal methods and logic to construct new tools for
software analysis, transformation and generation. We try and proof the
correctness of new algorithms using any means necessary.</p>
      <p>Nevertheless we mainly focus on the study of existing (large) software
artifacts to validate the effectiveness of new tools. We apply the
scientific method. To (in)validate our hypothesis we often use detailed
manual source code analysis, or we use software metrics, and we have
started to use more human subjects (programmers).</p>
      <p>Note that we maintain ties with the CWI spinoff “Software Improvement
Group” which services most of the Dutch software industry and
government
and many European companies as well. This provides access to software
systems and information about software systems that is valuable in our
research.
</p>
    </subsection>
    <subsection id="uid6" level="1">
      <bodyTitle>Software analysis</bodyTitle>
      <p>This research focuses on source code; to analyze it, transform it
and generate it. Each analysis or transformation begins with fact
extraction. After that we may analyze specific software systems or
large bodies of software systems. Our goal is to improve software
systems by understanding and resolving the causes of software
complexity. The approach is captured in the EASY acronym: Extract
Analyze SYnthesize. The first step is to extract facts from source
code. These facts are then enriched and refined in an analysis phase.
Finally the result is synthesized in the form of transformed or
generated source code, a metrics report, a visualization or some
other output artifact.</p>
      <p>The mother and father of fact extraction techniques are probably Lex, a
scanner generator, and AWK, a language intended for fact extraction from
textual records and report generation. Lex is intended to read a file
character-by-character and produce output when certain regular
expressions (for identifiers, floating point constants, keywords) are
recognized. AWK reads its input line-by-line and regular expression
matches are applied to each line to extract facts. User-defined actions
(in particular print statements) can be associated with each successful
match. This approach based on regular expressions is in wide use for
solving many problems such as data collection, data mining, fact
extraction, consistency checking, and system administration. This same
approach is used in languages like Perl, Python, and Ruby. Murphy and
Notkin have specialized the AWK-approach for the domain of fact
extraction from source code. The key idea is to extend the expressivity
of regular expressions by adding context information, in such a way that,
for instance, the begin and end of a procedure declaration can be
recognized. This approach has, for instance, been used for call graph
extraction but becomes cumbersome when more complex context information
has to be taken into account such as scope information, variable
qualification, or nested language constructs. This suggests using
grammar-based approaches as will be pursued in the proposed project.
Another line of research is the explicit instrumentation of existing
compilers with fact extraction capabilities. Examples are: the GNU C
compiler GCC, the CPPX C++ compiler, and the Columbus C/C++ analysis
framework. The Rigi system provides several fixed fact extractors for a
number of languages. The extracted facts are represented as tuples (see
below). The CodeSurfer source code analysis tool extracts a standard
collection of facts that can be further analyzed with built-in tools or
user-defined programs written in Scheme. In all these cases the
programming language as well as the set of extracted facts are fixed thus
limiting the range of problems that can be solved.</p>
      <p>The approach we are exploring is the use of syntax-related program
patterns for fact extraction. An early proposal for such a pattern-based
approach consisted of extending a fixed base language (either C or PL/1 variant)
with pattern matching primitives. In our own previous work on
RScript we have already proposed a query algebra to express direct queries
on the syntax tree. It also allows the querying of information that is
attached to the syntax tree via annotations. A unifying view is to consider
the syntax tree itself as “facts” and to represent it as a relation. This
idea is already quite old. For instance, Linton proposes to represent all
syntactic as well as semantic aspects of a program as relations and to use
SQL to query them. Due to the lack of expressiveness of SQL (notably the
lack of transitive closure) and the performance problems encountered, this
approach has not seen wider use.</p>
      <p>Parsing is a fundamental tool for fact extraction for source code. Our
group has longstanding contributions in the field of Generalized LR
parsing and Scannerless parsing. Such generalized parsing techniques
enable generation of parsers for a wide range of existing (legacy)
programming languages, which is highly relevant for experimental
research and validation.</p>
      <p>Extracted facts are often refined, enriched and queried in the
analysis phase. We propose to use a relational formalization of the
facts. That is, facts are represented as sets of tuples, which can
then be queried using relational algebra operators (e.g., domain,
transitive closure, projection, composition etc.). This relational
representation facilitates dealing with graphs, which are commonly
needed during program analysis, for instance when processing
control-flow or data-flow graphs. The Rascal language integrates a
relational sub-language by providing comprehensions over different
kinds of data types, in combination with powerful pattern matching and
built-in primitives for computing (transitive/reflexive) closures and
fixpoint computations (equation solving).</p>
      <subsection id="uid7" level="2">
        <bodyTitle>Goals</bodyTitle>
        <p>The main goal is to replace labour-intensive manual programming of
fact extractors by automatic generation based on concise and formal
specification. There is a wide open scientific challenge here: to
create a uniform and generic framework for fact extraction that is
superior to current more ad-hoc approaches, yet flexible enough to be
customized to the analysis case at hand. We expect to develop new
ideas and techniques for generic (language-parametric) fact extraction
from source code and other software artifacts.</p>
        <p>Given the advances made in fact extraction we are starting to apply our
techniques to observe source code and analyze it in detail.
</p>
      </subsection>
    </subsection>
    <subsection id="uid8" level="1">
      <bodyTitle>Refactoring and Transformation</bodyTitle>
      <p>The second goal, to be able to safely refactor or transform source
code can be realized in strong collaboration with extraction and
analysis.</p>
      <p>Software refactoring is usually understood as changing software with
the purpose of increasing its readability and maintainability rather
than changing its external behavior. Refactoring is an essential
tool in all agile software engineering methodologies. Refactoring is
usually supported by an interactive refactoring tool and consists of
the following steps:</p>
      <simplelist>
        <li id="uid9">
          <p noindent="true">Select a code fragment to refactor.</p>
        </li>
        <li id="uid10">
          <p noindent="true">Select a refactoring to apply to it.</p>
        </li>
        <li id="uid11">
          <p noindent="true">Optionally, provide extra parameter needed by the refactoring
(e.g., a new name in a renaming).</p>
        </li>
      </simplelist>
      <p>The refactoring tool will now test whether the
preconditions for the refactoring are satisfied. Note that this
requires fact extraction from the source code. If this fails the user
is informed. The refactoring tool shows the effects of the refactoring
before effectuating them. This gives the user the opportunity to
disable the refactoring in specific cases.The refactoring tool applies
the refactoring for all enabled cases. Note that this implies a
transformation of the source code. Some refactorings can be applied to
any programming language (e.g., rename) and others are language
specific (e.g., Pull Up Method). At <ref xlink:href="http://www.refactoring.com" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>www.<allowbreak/>refactoring.<allowbreak/>com</ref>
an extensive list of refactorings can be found.</p>
      <p>There is hardly any general and pragmatic theory for refactoring,
since each refactoring requires different static analysis techniques
to be able to check the preconditions. Full blown semantic
specification of programming languages have turned out to be
infeasible, let alone easily adaptable to small changes in language
semantics. On the other hand, each refactoring is an instance of the
extract, analyze and transform paradigm. Software transformation
regards more general changes such as adding functionality and
improving non-functional properties like performance and reliability.
It also includes transformation from/to the same language
(source-to-source translation) and transformation between different
languages (conversion, translation). The underlying techniques for
refactoring and transformation are mostly the same. We base our source
code transformation techniques on the classical concept of term
rewriting, or aspects thereof. It offers simple but powerful pattern
matching and pattern construction features (list matching, AC
Matching), and type-safe heterogenous data-structure traversal methods
that are certainly applicable for source code transformation.</p>
      <subsection id="uid12" level="2">
        <bodyTitle>Goals</bodyTitle>
        <p>Our goal is to integrate the techniques from program transformation
completely with relational queries. Refactoring and transformation
form the Achilles Heel of any effort to change and improve software.
Our innovation is in the strict language-parametric approach that may
yield a library of generic analyses and transformations that can be
reused across a wide range of programming and application languages.
The challenge is to make this approach scale to large bodies of source
code and rapid response times for precondition checking.</p>
      </subsection>
    </subsection>
    <subsection id="uid13" level="1">
      <bodyTitle>The Rascal Meta-programming language</bodyTitle>
      <p>The Rascal Domain-Specific Language for Source code analysis and
Transformation is developed by ATeams. It is a language
specifically designed for any kind of meta programming.</p>
      <p>Meta programming is a large and
diverse area both conceptually and technologically. There are
plentiful libraries, tools and languages available but integrated
facilities that combine both source code analysis and source code transformation are scarce.
Both domains depend on a wide range of concepts such as grammars and
parsing, abstract syntax trees, pattern matching, generalized tree
traversal, constraint solving, type inference, high fidelity
transformations, slicing, abstract interpretation, model checking, and
abstract state machines. Examples of tools that implement some of
these concepts are ANTLR,
ASF+SDF, CodeSurfer,
Crocopat, DMS, Grok,
Stratego, TOM and
TXL. These tools either specialize in analysis or in
transformation, but not in both. As a result, combinations of
analysis and transformation tools are used to get the job done. For
instance, ASF+SDF relies on
RScript for querying and TXL
interfaces with databases or query tools. In other approaches,
analysis and transformation are implemented from scratch, as done in
the Eclipse JDT. The TOM tool adds
transformation primitives to Java, such that libraries for analysis
can be used directly. In either approach, the job of integrating
analysis with transformation has to be done over and over again for
each application and this requires a significant investment.</p>
      <p>We propose a more radical solution by completely merging the set of
concepts for analysis and transformation of source code into a single
language called Rascal. This language covers the range of
applications from pure analyses to pure transformations and everything
in between. Our contribution does not consist of new concepts or
language features <i>per se</i>, but rather the careful
collaboration, integration and cross-fertilization of existing
concepts and language features.</p>
      <subsection id="uid14" level="2">
        <bodyTitle>Goals</bodyTitle>
        <p>The goals of Rascal are: (a) to remove the cognitive and
computational overhead of integrating analysis and transformation
tools, (b) to provide a safe and interactive environment for
constructing and experimenting with large and complicated source code
analyses and transformations such as, for instance, needed for
refactorings, and (c) to be easily understandable by a large group of
computer programming experts. Rascal is not limited to one
particular object programming language, but is generically applicable.
Reusable, language specific, functionality is realized as libraries.
As an end-result we envision Rascal to be a one-stop shop for source
code analysis, transformation, generation and visualization.</p>
      </subsection>
    </subsection>
    <subsection id="uid15" level="1">
      <bodyTitle>Domain-specific Languages</bodyTitle>
      <p>Our final goal is centered around Domain-specific languages (DSLs),
which are software languages tailored to a specific problem domain.
DSLs can provide orders of magnitude improvement in terms of
software quality and productivity. However, the implementation of
DSLs is challenging and requires not only thorough knowledge of the
problem domain (e.g., finance, digital forensics, insurance,
auditing etc.), but also knowledge of language implementation (e.g.,
parsing, compilation, type checking etc.). Tools for language
implementation have been around since the archetypical parser
generator YACC. However, many of such tools are characterized by
high learning curves, lack of integration of language implementation
facets, and lead to implementations that are hard to maintain. This
line of research focuses on two topics: improve the practice and
experience of DSL implementation, and evaluate the success of DSLs
in industrial practice.</p>
      <p>Language workbenches <ref xlink:href="#ateams-2014-bid0" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/> are integrated
environments to facilitate the development of all aspects of DSLs. This
includes IDE support (e.g., syntax coloring, outlining, reference
resolving etc.) for the defined languages. Rascal can be seen as a
language workbench that focuses on flexibility, programmability and
modularity. DSL implementation is, in essence, an instance of source
code analysis and transformation. As a result, Rascal's features for
fact extraction, analysis, tree traversal and synthesis are an
excellent fit for this area. An important aspect in this line of
research is bringing the IDE closer to the source code. This will
involve investigation of heterogeneous representations of source code,
by integrating graphical, tabular or forms-based user interface
elements. As a result, we propose Rascal as a feature-rich workbench
for model-driven software development.</p>
      <p>The second component of this research is concerned with evaluating
DSLs in industrial contexts. This means that DSLs constructed using
Rascal will be applied in real-life environments so that expected
improvements in quality, performance, or productivity can be observed.
We already have experience with this in the domain of digital forensics,
computational auditing and games.</p>
      <subsection id="uid16" level="2">
        <bodyTitle>Goals</bodyTitle>
        <p>The goal of this research topic is to improve the practice of
DSL-based software development through language design and tool
support. A primary focus is to extend the IDE support provided by
Rascal, and to facilitate incremental, and iterative design of DSLs.
The latter is supported by new (meta-)language constructs for
extending existing language implementations. This will require
research into extensible programming and composition of compilers,
interpreters and type checkers. Finally, a DSL is never an island: it
will have to integrate with (third-party) source code, such as host
language, libraries, runtime systems etc. This leads to the vision of
multi-lingual programming environments <ref xlink:href="#ateams-2014-bid1" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
      </subsection>
    </subsection>
  </fondements>
  <logiciels id="uid17">
    <bodyTitle>New Software and Platforms</bodyTitle>
    <subsection id="uid18" level="1">
      <bodyTitle>MicroMachinations</bodyTitle>
      <participants>
        <person key="ateams-2014-idp80368">
          <firstname>Riemer</firstname>
          <lastname>Van Rozen</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
      </participants>
      <descriptionlist>
        <label>Characterization:</label>
        <li id="uid19">
          <p noindent="true">A-2-up3, SO-4, SM-2-up3, EM-3, SDL-3-up4, OC-DA-3-CD-3-MS-3-TPM-3.</p>
        </li>
        <label>WWW:</label>
        <li id="uid20">
</li>
        <label>Objective:</label>
        <li id="uid21">
          <p noindent="true">To create an integrated, live environment for modeling and evolving game economies.
This will allow game designers to experiment with different strategies to realize game mechanics. The environment integrates with the SPIN model checker to prove properties (reachability, liveness). A runtime system for executing game economies allows MicroMachinations models to be embedded in actual games.</p>
        </li>
        <label>Users:</label>
        <li id="uid22">
          <p noindent="true">Game designers</p>
        </li>
        <label>Impact:</label>
        <li id="uid23">
          <p noindent="true">One of the important problems in game software development is the distance between game design and implementation in software. MicroMachinations has the potential to bridge this gap by providing live design tools that directly modify or create the desired software behaviors.</p>
        </li>
        <label>Competition:</label>
        <li id="uid24">
          <p noindent="true">None.</p>
        </li>
        <label>Engineering:</label>
        <li id="uid25">
          <p noindent="true">The front-end of MicroMachinations is built using the Rascal language workbench, including visualization, model checking, debugging and standard IDE features. The runtime library is implemented in C++ and will be evaluated in the context of industrial game design.</p>
        </li>
        <label>Publications:</label>
        <li id="uid26">
          <p noindent="true">
            <ref xlink:href="#ateams-2014-bid2" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>
          </p>
        </li>
      </descriptionlist>
      <subsection id="uid27" level="2">
        <bodyTitle>Novelties</bodyTitle>
        <simplelist>
          <li id="uid28">
            <p noindent="true">MMLib was finished to allow the execution of game economies
directly within games. This supports “Live programming” of the
behavior of games. The library has been used in the development of
the real-life game “Johnny Jetstream”, designed by IC3DMedia.</p>
          </li>
        </simplelist>
      </subsection>
    </subsection>
    <subsection id="uid29" level="1">
      <bodyTitle>Naked Object Algebras</bodyTitle>
      <participants>
        <person key="ateams-2014-idm26760">
          <firstname>Tijs</firstname>
          <lastname>Van Der Storm</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
      </participants>
      <descriptionlist>
        <label>Characterization:</label>
        <li id="uid30">
          <p noindent="true">A5, SO-4, SM-4, EM-4, SDL-4-up5, OC-DA-3-CD-3-MS-3-TPM-3.</p>
        </li>
        <label>WWW:</label>
        <li id="uid31">
          <p noindent="true">
            <ref xlink:href="https://github.com/cwi-swat/naked-object-algebras" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>github.<allowbreak/>com/<allowbreak/>cwi-swat/<allowbreak/>naked-object-algebras</ref>
          </p>
        </li>
        <label>Objective:</label>
        <li id="uid32">
          <p noindent="true">Supporting modular and extensible language development.</p>
        </li>
        <label>Users:</label>
        <li id="uid33">
          <p noindent="true">Programmers, language designers.</p>
        </li>
        <label>Impact:</label>
        <li id="uid34">
          <p noindent="true">Object Algebras promise a new level of modularity and extensibility in the implementation of recursive data types. The NAO framework lifts this to the implementation of software languages, including the declarative declaration of concrete syntax.</p>
        </li>
        <label>Competition:</label>
        <li id="uid35">
          <p noindent="true">Language prototyping tools.</p>
        </li>
        <label>Engineering:</label>
        <li id="uid36">
          <p noindent="true">NAO consists of a few hundred lines of Java code. It has no external dependencies, except ANTLR for parsing.</p>
        </li>
        <label>Publications:</label>
        <li id="uid37">
          <p noindent="true"><ref xlink:href="#ateams-2014-bid3" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, <ref xlink:href="#ateams-2014-bid4" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/></p>
        </li>
      </descriptionlist>
      <subsection id="uid38" level="2">
        <bodyTitle>Novelties</bodyTitle>
        <simplelist>
          <li id="uid39">
            <p noindent="true">NAO has been used to develop an extensible variant of the QL questionnaire language <ref xlink:href="#ateams-2014-bid4" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
          </li>
        </simplelist>
      </subsection>
    </subsection>
    <subsection id="uid40" level="1">
      <bodyTitle>Rascal</bodyTitle>
      <participants>
        <person key="ateams-2014-idm28104">
          <firstname>Paul</firstname>
          <lastname>Klint</lastname>
        </person>
        <person key="ateams-2014-idm29392">
          <firstname>Jurgen</firstname>
          <lastname>Vinju</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
        <person key="ateams-2014-idm26760">
          <firstname>Tijs</firstname>
          <lastname>Van Der Storm</lastname>
        </person>
        <person key="ateams-2014-idp71448">
          <firstname>Pablo</firstname>
          <lastname>Inostroza Valdera</lastname>
        </person>
        <person key="ateams-2014-idp74000">
          <firstname>Davy</firstname>
          <lastname>Landman</lastname>
        </person>
        <person key="ateams-2014-idp67736">
          <firstname>Bert</firstname>
          <lastname>Lisser</lastname>
        </person>
        <person key="ateams-2014-idp79088">
          <firstname>Atze</firstname>
          <lastname>Van Der Ploeg</lastname>
        </person>
        <person key="PASUSERID">
          <firstname>Vadim</firstname>
          <lastname>Zaytsev</lastname>
        </person>
        <person key="ateams-2014-idp72728">
          <firstname>Anastasia</firstname>
          <lastname>Izmaylova</lastname>
        </person>
        <person key="ateams-2014-idp76544">
          <firstname>Michael</firstname>
          <lastname>Steindorfer</lastname>
        </person>
        <person key="ateams-2014-idp77816">
          <firstname>Jouke</firstname>
          <lastname>Stoel</lastname>
        </person>
        <person key="ateams-2014-idp70232">
          <firstname>Ali</firstname>
          <lastname>Afroozeh</lastname>
        </person>
        <person key="ateams-2014-idp75272">
          <firstname>Ashim</firstname>
          <lastname>Shahi</lastname>
        </person>
      </participants>
      <descriptionlist>
        <label>Characterization:</label>
        <li id="uid41">
          <p noindent="true">A5, SO-4, SM-4, EM-4, SDL-4-up5, OC-DA-3-CD-3-MS-3-TPM-3.</p>
        </li>
        <label>WWW:</label>
        <li id="uid42">
          <p noindent="true">
            <ref xlink:href="http://www.rascal-mpl.org" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>www.<allowbreak/>rascal-mpl.<allowbreak/>org</ref>
          </p>
        </li>
        <label>Objective:</label>
        <li id="uid43">
          <p noindent="true">Provide a completely integrated programming language parametric meta programming language for the construction of any kind of meta program for any kind of programming language: analysis, transformation, generation, visualization.</p>
        </li>
        <label>Users:</label>
        <li id="uid44">
          <p noindent="true">Researchers in model driven engineering, programming languages, software engineering, software analysis, as well as practitioners that need specialized tools.</p>
        </li>
        <label>Impact:</label>
        <li id="uid45">
          <p noindent="true">Rascal is making the mechanics of meta programming into a non-issue. We can now focus on the interesting details of the particular fact extraction, model, source analysis, domain analysis as opposed to being distracted by the engineering details. Simple things are easy in Rascal and complex things are manageable, due to the integration, the general type system and high-level programming features.</p>
        </li>
        <label>Competition:</label>
        <li id="uid46">
          <p noindent="true">There is a plethora of meta programming toolboxes and frameworks available, ranging from plain parser generators to fully integrated environments. Rascal is distinguished because it is a programming language rather than a specification formalism and because it completely integrates different technical domains (syntax definition, term rewriting, relational calculus). For simple tools, Rascal competes with scripting languages and for complex tools it competes context-free general parser generators, with query engines based on relational calculus and with term rewriting and strategic programming languages.</p>
        </li>
        <label>Engineering:</label>
        <li id="uid47">
          <p noindent="true">Rascal is about 100 kLOC of Java code, designed by a core team of three and with a team of around 8 PhD students and post-docs contributing to its design, implementation and maintenance. The goal is to work towards more bootstrapping and less Java code as the project continues.</p>
        </li>
        <label>Publications:</label>
        <li id="uid48">
          <p noindent="true"><ref xlink:href="#ateams-2014-bid5" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, <ref xlink:href="#ateams-2014-bid6" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, <ref xlink:href="#ateams-2014-bid7" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, <ref xlink:href="#ateams-2014-bid8" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, <ref xlink:href="#ateams-2014-bid6" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/></p>
        </li>
      </descriptionlist>
      <subsection id="uid49" level="2">
        <bodyTitle>Novelties</bodyTitle>
        <simplelist>
          <li id="uid50">
            <p noindent="true">Improvements of the language-parametric model to represent software
projects (M3) <ref xlink:href="#ateams-2014-bid9" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
          </li>
          <li id="uid51">
            <p noindent="true">Performance improvements of the Rascal interpreter throughout.</p>
          </li>
          <li id="uid52">
            <p noindent="true">Further improvements to the compiler for Rascal, based on new
language construct guarded coroutines.</p>
          </li>
          <li id="uid53">
            <p noindent="true">New language feature: keyword parameters. This will further allow simplificiation of the core language, as well as support better extensibility.</p>
          </li>
          <li id="uid54">
            <p noindent="true">Significant improvements to the Rascal static type checker.</p>
          </li>
          <li id="uid55">
            <p noindent="true">Further improvements to the new GLL parser (Iguana).</p>
          </li>
          <li id="uid56">
            <p noindent="true">Design of a new DSL for describing core banking infrastructure was started (ReBEL).
Rascal was also used to develop a state machine DSL for use in embedded devices (Machino).</p>
          </li>
        </simplelist>
      </subsection>
    </subsection>
    <subsection id="uid57" level="1">
      <bodyTitle>IDE Meta-tooling Platform</bodyTitle>
      <participants>
        <person key="ateams-2014-idm29392">
          <firstname>Jurgen</firstname>
          <lastname>Vinju</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
        <person key="ateams-2014-idp76544">
          <firstname>Michael</firstname>
          <lastname>Steindorfer</lastname>
        </person>
      </participants>
      <p>IMP, the IDE meta tooling platform is an Eclipse plugin developed mainly by
the team of Robert M. Fuhrer at IBM TJ Watson Research institute. It is
both an abstract layer for Eclipse, allowing rapid development of Eclipse
based IDEs for programming languages, and a collection of meta programming
tools for generating source code analysis and transformation tools.</p>
      <descriptionlist>
        <label>Characterization:</label>
        <li id="uid58">
          <p noindent="true">A5, SO-3, SM4-up5, EM-4, SDL-5, DA-2-CD-2-MS-2-TPM-2</p>
        </li>
        <label>WWW:</label>
        <li id="uid59">
          <p noindent="true">
            <ref xlink:href="https://github.com/impulse-org/" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>github.<allowbreak/>com/<allowbreak/>impulse-org/</ref>
          </p>
        </li>
        <label>Objective:</label>
        <li id="uid60">
          <p noindent="true">The IDE Meta Tooling Platform (IMP) provides a high-level abstraction over the Eclipse API such that programmers can extend Eclipse with new programming languages or domain specific languages in a few simple steps. IMP also provides a number of standard meta tools such as a parser generator and a domain specific language for formal specifications of configuration parameters.</p>
        </li>
        <label>Users:</label>
        <li id="uid61">
          <p noindent="true">Designers and implementers of IDEs for programming languages and domain specific languages. Also, designers and implementers of meta programming tools.</p>
        </li>
        <label>Impact:</label>
        <li id="uid62">
          <p noindent="true">IMP is a popular among meta programmers especially for it provides the right level of abstraction.</p>
        </li>
        <label>Competition:</label>
        <li id="uid63">
          <p noindent="true">IMP competes with other Eclipse plugins for meta programming (such as Model Driven Engineering tools), but its API is more general and more flexible. IMP is a programmers framework rather than a set of generators.</p>
        </li>
        <label>Engineering:</label>
        <li id="uid64">
          <p noindent="true">IMP is a long-lived project of many contributors, which
is managed as an Eclipse incubation project at <tt>eclipse.org</tt>.
Currently we are moving the project to Github to explore more different
ways of collaboration.</p>
        </li>
        <label>Publications:</label>
        <li id="uid65">
          <p noindent="true">
            <ref xlink:href="#ateams-2014-bid10" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>
            <ref xlink:href="#ateams-2014-bid11" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>
          </p>
        </li>
      </descriptionlist>
      <subsection id="uid66" level="2">
        <bodyTitle>Novelties</bodyTitle>
        <simplelist>
          <li id="uid67">
            <p noindent="true">Significant performance improvements to the IMP program database. Performance is now better than equivalent data structure libraries in Scala and Clojure.</p>
          </li>
        </simplelist>
      </subsection>
    </subsection>
    <subsection id="uid68" level="1">
      <bodyTitle>Ensō</bodyTitle>
      <participants>
        <person key="ateams-2014-idm26760">
          <firstname>Tijs</firstname>
          <lastname>Van Der Storm</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
      </participants>
      <descriptionlist>
        <label>Characterization:</label>
        <li id="uid69">
          <p noindent="true">A5, SO-4, SM-3-up-4, EM-2-up-4, SDL-4, OC-DA-4-CD-4-MS-4-TPM-4</p>
        </li>
        <label>WWW:</label>
        <li id="uid70">
          <p noindent="true">
            <ref xlink:href="http://www.enso-lang.org" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>www.<allowbreak/>enso-lang.<allowbreak/>org</ref>
          </p>
        </li>
        <label>Objective:</label>
        <li id="uid71">
          <p noindent="true">Together with Prof. Dr. William R. Cook of the University of Texas at
Austin, and Alex Loh, Tijs van der Storm has been designing and implementing a new programming
system, called Ensō. Ensō is theoretically sound and practical
reformulation of model-based development. It is based on
model-interpretation as opposed to model transformation and code
generation. Currently, the system already supports models for schemas
(data models), web applications, context-free grammars, diagram
editors and security.</p>
        </li>
        <label>Users:</label>
        <li id="uid72">
          <p noindent="true">All programmers.</p>
        </li>
        <label>Impact:</label>
        <li id="uid73">
          <p noindent="true">Ensō has the potential to revolutionize the activity of programming. By looking at model driven engineering from a completely fresh perspective, with as key ingredients interpreters and partial evaluation, it may make higher level (domain level) program construction and maintenance as effective as normal programming.</p>
        </li>
        <label>Competition:</label>
        <li id="uid74">
          <p noindent="true">Ensō competes as a programming paradigm with model driven engineering tools and generic programming and languages that provide syntax macros and language extensions.</p>
        </li>
        <label>Engineering:</label>
        <li id="uid75">
          <p noindent="true">Ensō is a completely self-hosted system in 7000 lines of code.</p>
        </li>
        <label>Publications:</label>
        <li id="uid76">
          <p noindent="true"><ref xlink:href="#ateams-2014-bid12" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>,
<ref xlink:href="#ateams-2014-bid13" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, <ref xlink:href="#ateams-2014-bid14" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/></p>
        </li>
      </descriptionlist>
    </subsection>
  </logiciels>
  <resultats id="uid77">
    <bodyTitle>New Results</bodyTitle>
    <subsection id="uid78" level="1">
      <bodyTitle>Highlights of the Year</bodyTitle>
      <simplelist>
        <li id="uid79">
          <p noindent="true">Davy Landman, Jurgen Vinju received a Best paper award nomination, for their paper “Empirical analysis of the relationship between CC and SLOC in a large corpus of Java methods”(ICSM'14).</p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid80" level="1">
      <bodyTitle>Cyclomatic complexity <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mo>≠</mo></math></formula> Lines of Code</bodyTitle>
      <p>It has long been believed that cyclomatic complexity of source code correlates linearly with lines of code (SLOC). After extensive study of a large corpus of Java source code, Davy Landman and Jurgen Vinju refuted this belief <ref xlink:href="#ateams-2014-bid15" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. This provides a new landmark in how to assess and measure the quality of software. In short: cyclomatic complexity measures something different than lines of code.
</p>
    </subsection>
    <subsection id="uid81" level="1">
      <bodyTitle>Language-Parametric, Capture-Avoiding Program Transformation</bodyTitle>
      <p>Hygienic transformations are well-studied in the area of programming languages that feature (syntax) macros. For instance, in Scheme, macro expansion is guaranteed to not involuntarily capture existing bindings, or allow new bindings to be captured. Together with Sebastian Erdweg and Yi Dai, Tijs van der Storm designed a technique, “name-fix”, that can be used to ensure hygiene in arbitrary program transformations, even when source and target language are completely different <ref xlink:href="#ateams-2014-bid16" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.
</p>
    </subsection>
    <subsection id="uid82" level="1">
      <bodyTitle>Memory Efficient Hash Tries</bodyTitle>
      <p>The hash trie data structure is a common part in standard collection libraries of JVM programming languages such as Clojure and Scala. It enables fast immutable implementations of maps, sets, and vectors, but it requires considerably more memory than an equivalent array-based data structure. Michael Steindorfer designed a product family of hash tries to generate specialized Java source code <ref xlink:href="#ateams-2014-bid11" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. A preliminary experiment on the implementation of sets and maps shows that this technique leads to a median decrease of 55% in memory footprint for maps and 78% for sets.
</p>
    </subsection>
    <subsection id="uid83" level="1">
      <bodyTitle>Reflection without Remorse</bodyTitle>
      <p>A series of list appends or monadic binds for many monads performs algorithmically worse when it is left-associated. Continuation-passing style (CPS) is well-known to cure this severe dependence of performance on the association pattern. The advantage of CPS dwindles or disappears if we have to examine or modify the intermediate result of a series of appends or binds, before continuing the series. Such examination is frequently needed, for example, to control search in non-determinism monads. Atze van der Ploeg (together with Oleg Kiselyov) developed an alternative approach that is just as general as CPS but more robust: it makes series of binds and other such operations efficient regardless of the association pattern <ref xlink:href="#ateams-2014-bid17" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. This solution solves previously undocumented, severe performance problems in iteratees, LogicT transformers, free monads and extensible effects.
</p>
    </subsection>
    <subsection id="uid84" level="1">
      <bodyTitle>General Parser Combinators</bodyTitle>
      <p>Parser combinators are a well-known approach to parsing where grammars are represented using (higher-order) functions. Unfortunately, parser combinators are commonly implemented using recursive descent parsing as the underlying algorithm. As a result, most parser combinators frameworks do not support left-recursive rules, and may exhibit exponential runtime performance due to backtracking. Anastasia Izmaylova and Ali Afroozeh developed “general parser combinators” (GPC) which do not suffer from these problems: all context-free grammars are supported (even ambiguous ones) and performance is worst-case cubic. As result, GPC combines the expressiveness and performance guarantees of general parsing algorithms like GLL and GLR with the flexibility and extensibility of parser combinators.
</p>
    </subsection>
  </resultats>
  <contrats id="uid85">
    <bodyTitle>Bilateral Contracts and Grants with Industry</bodyTitle>
    <subsection id="uid86" level="1">
      <bodyTitle>Bilateral Contracts with Industry</bodyTitle>
      <simplelist>
        <li id="uid87">
          <p noindent="true">ING co-financed one PhD position in the context of CWI public-private collaboration program.
The goal is to apply domain-specific language technology to revitalize core banking infrastructure.</p>
        </li>
        <li id="uid88">
          <p noindent="true">AimValley won the CWI research voucher for developing a DSL
for state machines in the context of embedded devices. Davy Landman performed the
research and development.</p>
        </li>
      </simplelist>
    </subsection>
  </contrats>
  <partenariat id="uid89">
    <bodyTitle>Partnerships and Cooperations</bodyTitle>
    <subsection id="uid90" level="1">
      <bodyTitle>National Initiatives</bodyTitle>
      <subsection id="uid91" level="2">
        <bodyTitle>Master Software Engineering</bodyTitle>
        <p>ATEAMS is the core partner in the Master Software Engineering at
Universiteit van Amsterdam. This master is a collaboration between
SWAT/ATEAMS, Universiteit van Amsterdam, Vrije Universiteit and Hogeschool
van Amsterdam.</p>
      </subsection>
      <subsection id="uid92" level="2">
        <bodyTitle>Early Quality Assurance in Software Production</bodyTitle>
        <p>The EQUA project is a collaboration among Hogeschool van Amsterdam (main
partner) Centrum Wiskunde &amp; Informatica (CWI), Technisch Universiteit
Delft, Laboratory for Quality of Software (LaQuSo), Info Support, Software
Improvement Group (SIG), and Fontys Hogeschool Eindhoven.</p>
      </subsection>
      <subsection id="uid93" level="2">
        <bodyTitle>Next Generation Auditing: Data-assurance as a service</bodyTitle>
        <p>This is a collaboration between Centrum Wiskunde &amp; Informatic (CWI)
PriceWaterhouseCoopers (PWC), Belastingdienst (National Tax Office), and
Computational Auditing, is to enable research in the field of computational
auditing.</p>
      </subsection>
    </subsection>
    <subsection id="uid94" level="1">
      <bodyTitle>European Initiatives</bodyTitle>
      <subsection id="uid95" level="2">
        <bodyTitle>FP7 &amp; H2020 Projects</bodyTitle>
        <sanspuceslist>
          <li id="uid96">
            <p noindent="true">Program: FP7 STREP</p>
          </li>
          <li id="uid97">
            <p noindent="true">Project acronym: OSSMeter</p>
          </li>
          <li id="uid98">
            <p noindent="true">Project title: Automated Measurement and Analysis of Open Source Software</p>
          </li>
          <li id="uid99">
            <p noindent="true">Duration: 30 months (2012-10-01 – 2015-03-31)</p>
          </li>
          <li id="uid100">
            <p noindent="true">Coordinator: Scott Hansen</p>
          </li>
          <li id="uid101">
            <p noindent="true">Other partners: CWI, SOFTEAM (France), Tecnalia Research
and Innovation (Spain), The Open Group (Belgium), University
of L’Aquila (Italy), UNINOVA (Portugal), National Centre for
Text Mining University of Manchester (UK), University of
York (UK), Unparallel Innovation (Portugal).</p>
          </li>
        </sanspuceslist>
      </subsection>
    </subsection>
    <subsection id="uid102" level="1">
      <bodyTitle>International Research Visitors</bodyTitle>
      <subsection id="uid103" level="2">
        <bodyTitle>Visits of International Scientists</bodyTitle>
        <subsection id="uid104" level="3">
          <bodyTitle>Internships</bodyTitle>
          <simplelist>
            <li id="uid105">
              <p noindent="true">Cleverton Hentz, PhD Candidate at the Department of Informatics and Applied Mathematics (Dimap) at Federal University of Rio Grande do Norte (UFRN).</p>
            </li>
          </simplelist>
        </subsection>
      </subsection>
    </subsection>
  </partenariat>
  <diffusion id="uid106">
    <bodyTitle>Dissemination</bodyTitle>
    <subsection id="uid107" level="1">
      <bodyTitle>Promoting Scientific Activities</bodyTitle>
      <subsection id="uid108" level="2">
        <bodyTitle>Scientific events organisation</bodyTitle>
        <subsection id="uid109" level="3">
          <bodyTitle>General chair, scientific chair</bodyTitle>
          <simplelist>
            <li id="uid110">
              <p noindent="true">Jurgen Vinju: General Chair, The 7th International
Conference on Software Language Engineering (SLE), Steering
committee member SLE.</p>
            </li>
          </simplelist>
        </subsection>
        <subsection id="uid111" level="3">
          <bodyTitle>Member of the organizing committee</bodyTitle>
          <simplelist>
            <li id="uid112">
              <p noindent="true">Davy Landman: Web chair, The 7th International
Conference on Software Language Engineering (SLE).</p>
            </li>
            <li id="uid113">
              <p noindent="true">Tijs van der Storm: Social Media Chair, The 7th International
Conference on Software Language Engineering (SLE); co-organizer
Belgium Netherlands Seminar on Software Evolution (BENEVOL'14),
co-organizer Software Development Automation'14 (SDA'14).</p>
            </li>
          </simplelist>
        </subsection>
      </subsection>
      <subsection id="uid114" level="2">
        <bodyTitle>Scientific events selection</bodyTitle>
        <subsection id="uid115" level="3">
          <bodyTitle>Member of the conference program committee</bodyTitle>
          <simplelist>
            <li id="uid116">
              <p noindent="true">Paul Klint: WCRE/CSMR ERA 2014.</p>
            </li>
            <li id="uid117">
              <p noindent="true">Tijs van der Storm: SLE'14, DSLDI'14, SEMS'14, FTJP'14, TTC'14.</p>
            </li>
            <li id="uid118">
              <p noindent="true">Jurgen Vinju: WCRE/CSMR Tool track.</p>
            </li>
          </simplelist>
        </subsection>
        <subsection id="uid119" level="3">
          <bodyTitle>Reviewer</bodyTitle>
          <simplelist>
            <li id="uid120">
              <p noindent="true">Tijs van der Storm: PLDI'14.</p>
            </li>
          </simplelist>
        </subsection>
      </subsection>
      <subsection id="uid121" level="2">
        <bodyTitle>Journal</bodyTitle>
        <subsection id="uid122" level="3">
          <bodyTitle>Member of the editorial board</bodyTitle>
          <simplelist>
            <li id="uid123">
              <p noindent="true">Jan van Eijck: Editor of the Journal of Logics and their Applications.</p>
            </li>
            <li id="uid124">
              <p noindent="true">Paul Klint: Editor Science of Computer Programming, editor Springer LNCS Series on Services Science.</p>
            </li>
            <li id="uid125">
              <p noindent="true">Jurgen Vinju: co-editor ERCIM news, special issue on Software Quality.</p>
            </li>
          </simplelist>
        </subsection>
        <subsection id="uid126" level="3">
          <bodyTitle>Reviewer</bodyTitle>
          <simplelist>
            <li id="uid127">
              <p noindent="true">Jan van Eijck: Reviewer for ESSLLI, Journal of Semantics,
Journal of Logic and Computation, Fundamenta Informaticae, Synthese,
Journal of Philosophical Logic, Journal of Logic, Language and
Information, Cambridge University Press.</p>
            </li>
            <li id="uid128">
              <p noindent="true">Tijs van der Storm: Journal of Software &amp; Systems Modeling,
Science of Computer Programming, Computer Languages, Computer
Languages, Systems and Structures, Automated Softare Engineering.</p>
            </li>
          </simplelist>
        </subsection>
      </subsection>
    </subsection>
    <subsection id="uid129" level="1">
      <bodyTitle>Teaching - Supervision - Juries</bodyTitle>
      <subsection id="uid130" level="2">
        <bodyTitle>Teaching</bodyTitle>
        <sanspuceslist>
          <li id="uid131">
            <p noindent="true">Master : Jan van Eijck, “Software Testing”, 6 EC, Master
Programme Software Engineering, Universiteit van Amsterdam, The
Netherlands.</p>
          </li>
          <li id="uid132">
            <p noindent="true">Master: Jan van Eijck, “Functional Specification of
Algorithms”, 6 EC, Master Programme Logic, Universiteit van
Amsterdam, The Netherlands.</p>
          </li>
          <li id="uid133">
            <p noindent="true">Master : Tijs van der Storm, “Software Construction”, 6 EC,
Universiteit van Amsterdam, The Netherlands.</p>
          </li>
        </sanspuceslist>
      </subsection>
      <subsection id="uid134" level="2">
        <bodyTitle>Supervision</bodyTitle>
        <sanspuceslist>
          <li id="uid135">
            <p noindent="true">PhD : Jeroen van den Bos, “Gathering Evidence: Model-Driven Software Engineering in Automated Digital Forensics”, Universiteit van Amsterdam, January, 9th, 2014, Paul Klint, Tijs van der Storm.</p>
          </li>
          <li id="uid136">
            <p noindent="true">PhD in progress : Ali Afroozeh, “Advances in GLL Parsing” , 2012, Paul Klint, Jurgen Vinju.</p>
          </li>
          <li id="uid137">
            <p noindent="true">PhD in progress : Pablo Inostroza Valdera, “Modularity in DSL development”, 2013, Paul Klint, Tijs van der Storm.</p>
          </li>
          <li id="uid138">
            <p noindent="true">PhD in progress : Anastasia Izmaylova, “Language Parametric Refactoring”, 2011, Paul Klint, Jurgen Vinju.</p>
          </li>
          <li id="uid139">
            <p noindent="true">PhD in progress : Atze van der Ploeg, “Efficient Abstractions for Visualization and Interaction”, 2011, Paul Klint, Tijs van der Storm.</p>
          </li>
          <li id="uid140">
            <p noindent="true">PhD in progress : Riemer van Rozen, “Model-Driven Game Development”, 2013, Paul Klint, Tijs van der Storm.</p>
          </li>
          <li id="uid141">
            <p noindent="true">PhD in progress : Michael Steindorfer, “Efficient Data Structures for Meta Programming”, 2012, Paul Klint, Jurgen Vinju.</p>
          </li>
          <li id="uid142">
            <p noindent="true">PhD in progress : Jouke Stoel, “Model Driven Infrastructure for Core Banking”, 2014, Jurgen Vinju, Tijs van der Storm.</p>
          </li>
        </sanspuceslist>
      </subsection>
      <subsection id="uid143" level="2">
        <bodyTitle>Juries</bodyTitle>
        <p>Jurgen Vinju acted as reading committee member of the PhD of Maartje de Jonge, at TU Delft.</p>
      </subsection>
    </subsection>
    <subsection id="uid144" level="1">
      <bodyTitle>Popularization</bodyTitle>
      <p>Paul Klint:</p>
      <simplelist>
        <li id="uid145">
          <p noindent="true">De Softwarerevolutie, Valedictory lecture.</p>
        </li>
        <li id="uid146">
          <p noindent="true">Nemo, Hoe ontstond de eerste computer?</p>
        </li>
        <li id="uid147">
          <p noindent="true">Nemo/Klokhuis, Hoe ontstond de eerste computer?</p>
        </li>
        <li id="uid148">
          <p noindent="true">BYOM: Bring Your Own Metrics (EQUA Symposium).</p>
        </li>
        <li id="uid149">
          <p noindent="true">The Revenge of the Coroutines (SEN Symposium).</p>
        </li>
      </simplelist>
      <p>Tijs van der Storm:</p>
      <simplelist>
        <li id="uid150">
          <p noindent="true">Who's afraid of Object Algebras?, Joy of Coding 2014.</p>
        </li>
        <li id="uid151">
          <p noindent="true">Hack your DSL with Rascal, CodeGeneration 2014.</p>
        </li>
        <li id="uid152">
          <p noindent="true">The Rascal Language Workbench, NSPyre, 2014.</p>
        </li>
        <li id="uid153">
          <p noindent="true">I am plain text, – resistance is futile, Sioux, 2014.</p>
        </li>
        <li id="uid154">
          <p noindent="true">Rascal: functional programming for source code analysis and transformation, guest lecture at Hogeschool van Arnhem en Nijmegen (HAN).</p>
        </li>
      </simplelist>
      <p>Jurgen Vinju:</p>
      <simplelist>
        <li id="uid155">
          <p noindent="true">De allereerste computerprogrammeur Ada Lovelace (1815 - 1852), Kennis van NU (radio appearance).</p>
        </li>
        <li id="uid156">
          <p noindent="true">Complexe Software, Eindhovens Dagblad.</p>
        </li>
        <li id="uid157">
          <p noindent="true">De eerste programmeur, VPRO Gids.</p>
        </li>
      </simplelist>
      <p>Jan van Eijck is member of the Advisory Board (`Raad van Advies') of
the Artificial Intelligence Curriculum, University of Groningen (since
Summer 2013). Paul Klint acts as treasurer of the EAPLS and was
directory of the Master Software Engineering at Universiteit van
Amsterdam (UvA) until September 1, 2014. He is also board member of
the Instituut voor Programmatuur en Algoritmiek (IPA). Tijs van der
Storm is head of the internship committee at CWI, co-organizer of the
CWI Scientific Meeting and secretary of the CWI works council.</p>
    </subsection>
  </diffusion>
  <biblio id="bibliography" html="bibliography" numero="10" titre="Bibliography">
    
    <biblStruct id="ateams-2014-bid27" type="inproceedings" rend="refer" n="refercite:Basten2010">
      <analytic>
        <title level="a">Tracking Down the Origins of Ambiguity in Context-Free Grammars</title>
        <author>
          <persName>
            <foreName>Bas</foreName>
            <surname>Basten</surname>
            <initial>B.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes" x-editorial-board="yes">
        <editor role="editor">
          <persName>
            <foreName>Ana</foreName>
            <surname>Cavalcanti</surname>
            <initial>A.</initial>
          </persName>
          <persName key="veridis-2014-idp94304">
            <foreName>David</foreName>
            <surname>Deharbe</surname>
            <initial>D.</initial>
          </persName>
          <persName>
            <foreName>Marie-Claude</foreName>
            <surname>Gaudel</surname>
            <initial>M.-C.</initial>
          </persName>
          <persName>
            <foreName>Jim</foreName>
            <surname>Woodcock</surname>
            <initial>J.</initial>
          </persName>
        </editor>
        <title level="m">Seventh International Colloquium on Theoretical Aspects of Computing (ICTAC 2010)</title>
        <imprint>
          <biblScope type="volume">6255</biblScope>
          <publisher>
            <orgName>Springer</orgName>
          </publisher>
          <dateStruct>
            <month>September</month>
            <year>2010</year>
          </dateStruct>
          <biblScope type="pages">76-90</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid10" type="inproceedings" rend="refer" n="refercite:imp">
      <analytic>
        <title level="a">Accelerating the Creation of Customized, Language-Specific IDEs in Eclipse</title>
        <author>
          <persName>
            <foreName>Philippe</foreName>
            <surname>Charles</surname>
            <initial>P.</initial>
          </persName>
          <persName>
            <foreName>Robert M.</foreName>
            <surname>Fuhrer</surname>
            <initial>R. M.</initial>
          </persName>
          <persName>
            <foreName>Stanley M.</foreName>
            <surname>Sutton Jr</surname>
            <initial>S. M.</initial>
          </persName>
          <persName>
            <foreName>Evelyn</foreName>
            <surname>Duesterwald</surname>
            <initial>E.</initial>
          </persName>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes" x-editorial-board="yes">
        <editor role="editor">
          <persName>
            <foreName>Shail</foreName>
            <surname>Arora</surname>
            <initial>S.</initial>
          </persName>
          <persName>
            <foreName>Gary T.</foreName>
            <surname>Leavens</surname>
            <initial>G. T.</initial>
          </persName>
        </editor>
        <title level="m">Proceedings of the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2009</title>
        <imprint>
          <dateStruct>
            <year>2009</year>
          </dateStruct>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid30" type="book" rend="refer" n="refercite:EijUng09:cswfp">
      <monogr x-editorial-board="no" x-international-audience="yes" x-proceedings="no">
        <title level="m">Computational Semantics with Functional Programming</title>
        <author>
          <persName>
            <foreName>Jan van</foreName>
            <surname>Eijck</surname>
            <initial>Jan van.</initial>
          </persName>
          <persName>
            <foreName>Christina</foreName>
            <surname>Unger</surname>
            <initial>C.</initial>
          </persName>
        </author>
        <imprint>
          <publisher>
            <orgName>Cambridge University Press</orgName>
          </publisher>
          <dateStruct>
            <month>September</month>
            <year>2010</year>
          </dateStruct>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid0" type="inproceedings" rend="refer" n="refercite:erdweg:hal-00923386">
      <identifiant type="hal" value="hal-00923386"/>
      <analytic>
        <title level="a">The State Of The Art In Language Workbenches. Conclusions From The Language Workbench Challenge</title>
        <author>
          <persName>
            <foreName>Sebastian</foreName>
            <surname>Erdweg</surname>
            <initial>S.</initial>
          </persName>
          <persName>
            <foreName>Tijs</foreName>
            <surname>Storm Van Der</surname>
            <initial>T.</initial>
          </persName>
          <persName>
            <foreName>M.</foreName>
            <surname>Voelter</surname>
            <initial>M.</initial>
          </persName>
          <persName>
            <foreName>M.</foreName>
            <surname>Boersma</surname>
            <initial>M.</initial>
          </persName>
          <persName>
            <foreName>R.</foreName>
            <surname>Bosman</surname>
            <initial>R.</initial>
          </persName>
          <persName>
            <foreName>William R.</foreName>
            <surname>Cook</surname>
            <initial>W. R.</initial>
          </persName>
          <persName>
            <foreName>A.</foreName>
            <surname>Gerritsen</surname>
            <initial>A.</initial>
          </persName>
          <persName>
            <foreName>A.</foreName>
            <surname>Hulshout</surname>
            <initial>A.</initial>
          </persName>
          <persName>
            <foreName>S.</foreName>
            <surname>Kelly</surname>
            <initial>S.</initial>
          </persName>
          <persName>
            <foreName>Alex</foreName>
            <surname>Loh</surname>
            <initial>A.</initial>
          </persName>
          <persName>
            <foreName>G.</foreName>
            <surname>Konat</surname>
            <initial>G.</initial>
          </persName>
          <persName>
            <foreName>P. J.</foreName>
            <surname>Molina</surname>
            <initial>P. J.</initial>
          </persName>
          <persName>
            <foreName>M.</foreName>
            <surname>Patatnik</surname>
            <initial>M.</initial>
          </persName>
          <persName>
            <foreName>R.</foreName>
            <surname>Pohjonen</surname>
            <initial>R.</initial>
          </persName>
          <persName>
            <foreName>E.</foreName>
            <surname>Schindler</surname>
            <initial>E.</initial>
          </persName>
          <persName>
            <foreName>K.</foreName>
            <surname>Schindler</surname>
            <initial>K.</initial>
          </persName>
          <persName>
            <foreName>R.</foreName>
            <surname>Solmi</surname>
            <initial>R.</initial>
          </persName>
          <persName>
            <foreName>V.</foreName>
            <surname>Vergu</surname>
            <initial>V.</initial>
          </persName>
          <persName>
            <foreName>K. B.</foreName>
            <surname>van der Vlist</surname>
            <initial>K. B.</initial>
          </persName>
          <persName>
            <foreName>G.</foreName>
            <surname>Wachsmuth</surname>
            <initial>G.</initial>
          </persName>
          <persName>
            <foreName>J. M.</foreName>
            <surname>van der Woning</surname>
            <initial>J. M.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <title level="m">Proceedings of the International Conference on Software Language Engineering (SLE, 2013)</title>
        <loc>Indianapolis, USA</loc>
        <imprint>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/hal-00923386" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923386</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid8" type="inproceedings" rend="refer" n="refercite:hills:hal-00756878">
      <identifiant type="hal" value="hal-00756878"/>
      <analytic>
        <title level="a">Meta-Language Support For Type-Safe Access To External Resources</title>
        <author>
          <persName>
            <foreName>Mark</foreName>
            <surname>Hills</surname>
            <initial>M.</initial>
          </persName>
          <persName key="ateams-2014-idm28104">
            <foreName>Paul</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <editor role="editor">
          <persName>
            <foreName>Krzysztof</foreName>
            <surname>Czarnecki</surname>
            <initial>K.</initial>
          </persName>
          <persName>
            <foreName>Görel</foreName>
            <surname>Hedin</surname>
            <initial>G.</initial>
          </persName>
        </editor>
        <title level="m">Pre-Proceedings of the 5th International Conference on Software Language Engineering</title>
        <loc>Dresden, Netherlands</loc>
        <imprint>
          <publisher>
            <orgName>Fakultät Informatik, Technische Universität Dresden</orgName>
          </publisher>
          <dateStruct>
            <year>2012</year>
          </dateStruct>
          <biblScope type="pages">370 - 389</biblScope>
          <ref xlink:href="http://hal.inria.fr/hal-00756878" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00756878</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid6" type="inproceedings" rend="refer" n="refercite:hills:hal-00756880">
      <identifiant type="hal" value="hal-00756880"/>
      <analytic>
        <title level="a">Program Analysis Scenarios In Rascal</title>
        <author>
          <persName>
            <foreName>Mark</foreName>
            <surname>Hills</surname>
            <initial>M.</initial>
          </persName>
          <persName key="ateams-2014-idm28104">
            <foreName>Paul</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <editor role="editor">
          <persName>
            <foreName>F</foreName>
            <surname>Durán</surname>
            <initial>F.</initial>
          </persName>
        </editor>
        <title level="m">Proceedings of the International Workshop on Rewriting Logic and its Applications (WRLA, 2012)</title>
        <loc>Talinn, Estonia</loc>
        <imprint>
          <biblScope type="volume">7571</biblScope>
          <publisher>
            <orgName>Springer</orgName>
          </publisher>
          <dateStruct>
            <year>2012</year>
          </dateStruct>
          <biblScope type="pages">10 - 30</biblScope>
          <ref xlink:href="http://hal.inria.fr/hal-00756880" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00756880</ref>
        </imprint>
      </monogr>
      <note type="bnote">An invited paper for WRLA 2012, describing our work on program analysis and comparing our approach to approaches based on rewriting logic semantics</note>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid5" type="inproceedings" rend="refer" n="refercite:hills:hal-00756879">
      <identifiant type="hal" value="hal-00756879"/>
      <analytic>
        <title level="a">Scripting A Refactoring With Rascal And Eclipse</title>
        <author>
          <persName>
            <foreName>Mark</foreName>
            <surname>Hills</surname>
            <initial>M.</initial>
          </persName>
          <persName key="ateams-2014-idm28104">
            <foreName>Paul</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <editor role="editor">
          <persName>
            <foreName>P.</foreName>
            <surname>Sommerlad</surname>
            <initial>P.</initial>
          </persName>
        </editor>
        <title level="m">Proceedings of the 5th Workshop on Refactoring Tools 2012</title>
        <loc>Rapperswil, Switzerland</loc>
        <imprint>
          <publisher>
            <orgName>ACM</orgName>
          </publisher>
          <dateStruct>
            <year>2012</year>
          </dateStruct>
          <biblScope type="pages">40 - 49</biblScope>
          <ref xlink:href="http://hal.inria.fr/hal-00756879" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00756879</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid7" type="article" rend="refer" n="refercite:hills:hal-00756876">
      <identifiant type="hal" value="hal-00756876"/>
      <analytic>
        <title level="a">A One-Stop Shop For Software Evolution Tool Construction</title>
        <author>
          <persName>
            <foreName>Mark</foreName>
            <surname>Hills</surname>
            <initial>M.</initial>
          </persName>
          <persName key="ateams-2014-idm28104">
            <foreName>Paul</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-editorial-board="yes" x-international-audience="yes">
        <title level="j">ERCIM News</title>
        <imprint>
          <biblScope type="number">88</biblScope>
          <dateStruct>
            <year>2012</year>
          </dateStruct>
          <biblScope type="pages">11 - 12</biblScope>
          <ref xlink:href="http://hal.inria.fr/hal-00756876" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00756876</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid9" type="techreport" rend="refer" n="refercite:izmaylova:hal-00923379">
      <identifiant type="arXiv" value=""/>
      <identifiant type="hal" value="hal-00923379"/>
      <monogr>
        <title level="m">M3: An Open Model For Measuring Code Artifacts</title>
        <author>
          <persName key="ateams-2014-idp72728">
            <foreName>A.</foreName>
            <surname>Izmaylova</surname>
            <initial>A.</initial>
          </persName>
          <persName key="ateams-2014-idm28104">
            <foreName>Paul</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2014-idp75272">
            <foreName>A.</foreName>
            <surname>Shahi</surname>
            <initial>A.</initial>
          </persName>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
        </author>
        <imprint>
          <biblScope type="number">arXiv-1312.1188</biblScope>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <biblScope type="pages">1-2</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-00923379" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923379</ref>
        </imprint>
      </monogr>
      <note type="typdoc">Research Report</note>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid28" type="incollection" rend="refer" n="refercite:RASCALLNCS">
      <identifiant type="doi" value="10.1007/978-3-642-18023-1_6"/>
      <analytic>
        <title level="a">EASY Meta-programming with Rascal</title>
        <author>
          <persName key="ateams-2014-idm28104">
            <foreName>Paul</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <editor role="editor">
          <persName>
            <foreName>João</foreName>
            <surname>Fernandes</surname>
            <initial>J.</initial>
          </persName>
          <persName>
            <foreName>Ralf</foreName>
            <surname>Lämmel</surname>
            <initial>R.</initial>
          </persName>
          <persName>
            <foreName>Joost</foreName>
            <surname>Visser</surname>
            <initial>J.</initial>
          </persName>
          <persName>
            <foreName>João</foreName>
            <surname>Saraiva</surname>
            <initial>J.</initial>
          </persName>
        </editor>
        <title level="m">Generative and Transformational Techniques in Software Engineering III</title>
        <title level="s">Lecture Notes in Computer Science</title>
        <imprint>
          <biblScope type="volume">6491</biblScope>
          <publisher>
            <orgName>Springer Berlin / Heidelberg</orgName>
          </publisher>
          <dateStruct>
            <year>2011</year>
          </dateStruct>
          <biblScope type="pages">222-289</biblScope>
          <ref xlink:href="http://dx.doi.org/10.1007/978-3-642-18023-1_6" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>dx.<allowbreak/>doi.<allowbreak/>org/<allowbreak/>10.<allowbreak/>1007/<allowbreak/>978-3-642-18023-1_6</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid2" type="inproceedings" rend="refer" n="refercite:klint:hal-00923383">
      <identifiant type="hal" value="hal-00923383"/>
      <analytic>
        <title level="a">Micro-Machinations: A DSL For Game Economies</title>
        <author>
          <persName key="ateams-2014-idm28104">
            <foreName>Paul</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2014-idp80368">
            <foreName>Riemer</foreName>
            <surname>Van Rozen</surname>
            <initial>R.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <editor role="editor">
          <persName>
            <foreName>M.</foreName>
            <surname>Erwig</surname>
            <initial>M.</initial>
          </persName>
          <persName>
            <foreName>R. F.</foreName>
            <surname>Paige</surname>
            <initial>R. F.</initial>
          </persName>
          <persName>
            <foreName>E.</foreName>
            <surname>van Wyk</surname>
            <initial>E.</initial>
          </persName>
        </editor>
        <title level="m">Proceedings of the International Conference on Software Language Engineering (SLE, 2013)</title>
        <loc>Unknown</loc>
        <title level="s">Lecture Notes in Computer Science</title>
        <imprint>
          <biblScope type="volume">8225</biblScope>
          <publisher>
            <orgName>Springer</orgName>
          </publisher>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <biblScope type="pages">36 - 55</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-00923383" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923383</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid29" type="inproceedings" rend="refer" n="refercite:RASCALSCAM">
      <identifiant type="doi" value="10.1109/SCAM.2009.28"/>
      <analytic>
        <title level="a">RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation</title>
        <author>
          <persName key="ateams-2014-idm28104">
            <foreName>Paul</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes" x-editorial-board="yes">
        <title level="m">IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'09)</title>
        <loc>Los Alamitos, CA, USA</loc>
        <imprint>
          <dateStruct>
            <year>2009</year>
          </dateStruct>
          <biblScope type="pages">168-177</biblScope>
          <ref xlink:href="http://doi.ieeecomputersociety.org/10.1109/SCAM.2009.28" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>doi.<allowbreak/>ieeecomputersociety.<allowbreak/>org/<allowbreak/>10.<allowbreak/>1109/<allowbreak/>SCAM.<allowbreak/>2009.<allowbreak/>28</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid14" type="inproceedings" rend="refer" n="refercite:loh:hal-00756886">
      <identifiant type="hal" value="hal-00756886"/>
      <analytic>
        <title level="a">Managed Data: Modular Strategies For Data Abstraction</title>
        <author>
          <persName>
            <foreName>Alex</foreName>
            <surname>Loh</surname>
            <initial>A.</initial>
          </persName>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName>
            <foreName>William R.</foreName>
            <surname>Cook</surname>
            <initial>W. R.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <title level="m">Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software 2012</title>
        <loc>Tucson, United States</loc>
        <imprint>
          <publisher>
            <orgName>ACM</orgName>
          </publisher>
          <dateStruct>
            <year>2012</year>
          </dateStruct>
          <biblScope type="pages">179 - 194</biblScope>
          <ref xlink:href="http://hal.inria.fr/hal-00756886" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00756886</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid12" type="inproceedings" rend="refer" n="refercite:oliveira:hal-00923387">
      <identifiant type="hal" value="hal-00923387"/>
      <analytic>
        <title level="a">Feature-Oriented Programming With Object Algebras</title>
        <author>
          <persName>
            <foreName>Bruno C. d. S.</foreName>
            <surname>Oliveira</surname>
            <initial>B. C. d. S.</initial>
          </persName>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName>
            <foreName>Alex</foreName>
            <surname>Loh</surname>
            <initial>A.</initial>
          </persName>
          <persName>
            <foreName>William R.</foreName>
            <surname>Cook</surname>
            <initial>W. R.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <title level="m">Proceedings of the European Conference on Object-Oriented Programming (ECOOP)</title>
        <imprint>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/hal-00923387" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923387</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid31" type="inproceedings" rend="refer" n="refercite:vanderstorm:2011:hal-00644687:1">
      <identifiant type="hal" value="hal-00644687"/>
      <analytic>
        <title level="a">Bringing Domain-Specific Languages to Digital Forensics</title>
        <author>
          <persName>
            <foreName>Jeroen</foreName>
            <surname>van den Bos</surname>
            <initial>J.</initial>
          </persName>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <title level="m">Proceedings of the 33rd International Conference on Software Engineering, ICSE 2011, Waikiki, Honolulu , HI, USA, May 21-28, 2011</title>
        <loc>Honolulu, United States</loc>
        <imprint>
          <publisher>
            <orgName>ACM</orgName>
          </publisher>
          <dateStruct>
            <year>2011</year>
          </dateStruct>
          <biblScope type="pages">671-680</biblScope>
          <ref xlink:href="http://hal.inria.fr/hal-00644687/en" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00644687/<allowbreak/>en</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid33" type="article" rend="refer" n="refercite:vandenbos:hal-00756885">
      <identifiant type="hal" value="hal-00756885"/>
      <analytic>
        <title level="a">Domain-Specific Languages For Better Forensic Software</title>
        <author>
          <persName>
            <foreName>Jeroen</foreName>
            <surname>van den Bos</surname>
            <initial>J.</initial>
          </persName>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-editorial-board="yes" x-international-audience="yes">
        <title level="j">ERCIM News</title>
        <imprint>
          <biblScope type="volume">2012</biblScope>
          <biblScope type="number">90</biblScope>
          <dateStruct>
            <year>2012</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/hal-00756885" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00756885</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid34" type="inproceedings" rend="refer" n="refercite:vandenbos:hal-00756891">
      <identifiant type="hal" value="hal-00756891"/>
      <analytic>
        <title level="a">Domain-Specific Optimization In Digital Forensics</title>
        <author>
          <persName>
            <foreName>Jeroen</foreName>
            <surname>van den Bos</surname>
            <initial>J.</initial>
          </persName>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <editor role="editor">
          <persName>
            <foreName>Z.</foreName>
            <surname>Hu</surname>
            <initial>Z.</initial>
          </persName>
          <persName>
            <foreName>J.</foreName>
            <surname>de Lara</surname>
            <initial>J.</initial>
          </persName>
        </editor>
        <title level="m">Proceedings of the International Conference on Model Transformation (ICMT, 2012)</title>
        <loc>Prague, Czech Republic</loc>
        <imprint>
          <biblScope type="volume">7307</biblScope>
          <publisher>
            <orgName>Springer</orgName>
          </publisher>
          <dateStruct>
            <year>2012</year>
          </dateStruct>
          <biblScope type="pages">121 - 136</biblScope>
          <ref xlink:href="http://hal.inria.fr/hal-00756891" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00756891</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid1" type="article" rend="refer" n="refercite:vanderstorm:hal-00923385">
      <identifiant type="hal" value="hal-00923385"/>
      <analytic>
        <title level="a">Towards Multilingual Programming Environments</title>
        <author>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="j">Science of Computer Programming</title>
        <imprint>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <ref xlink:href="https://hal.inria.fr/hal-00923385" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923385</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid32" type="inproceedings" rend="refer" n="refercite:cc">
      <analytic>
        <title level="a">What does control flow really look like? Eyeballing the Cyclomatic Complexity Metric</title>
        <author>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
          <persName>
            <foreName>Michael W.</foreName>
            <surname>Godfrey</surname>
            <initial>M. W.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">Ninth IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM'12)</title>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society</orgName>
          </publisher>
          <dateStruct>
            <year>2012</year>
          </dateStruct>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid13" type="inproceedings" rend="refer" n="refercite:storm:hal-00758627">
      <identifiant type="hal" value="hal-00758627"/>
      <analytic>
        <title level="a">Object Grammars: Compositional &amp; Bidirectional Mapping Between Text and Graphs</title>
        <author>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName>
            <foreName>William R.</foreName>
            <surname>Cook</surname>
            <initial>W. R.</initial>
          </persName>
          <persName>
            <foreName>Alex</foreName>
            <surname>Loh</surname>
            <initial>A.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <editor role="editor">
          <persName>
            <foreName>Krzysztof</foreName>
            <surname>Czarnecki</surname>
            <initial>K.</initial>
          </persName>
          <persName>
            <foreName>Görel</foreName>
            <surname>Hedin</surname>
            <initial>G.</initial>
          </persName>
        </editor>
        <title level="m">Software Language Engineering</title>
        <loc>Dresden, Germany</loc>
        <imprint>
          <dateStruct>
            <month>September</month>
            <year>2012</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/hal-00758627" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00758627</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid26" type="proceedings" rend="year" n="cite:combemale:hal-01110914">
      <identifiant type="hal" value="hal-01110914"/>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="yes">
        <title level="m">Software Language Engineering</title>
        <editor role="editor">
          <persName key="diverse-2014-idm6528">
            <foreName>Benoît</foreName>
            <surname>Combemale</surname>
            <initial>B.</initial>
          </persName>
          <persName>
            <foreName>David J.</foreName>
            <surname>Pearce</surname>
            <initial>D. J.</initial>
          </persName>
          <persName key="diverse-2014-idp86664">
            <foreName>Olivier</foreName>
            <surname>Barais</surname>
            <initial>O.</initial>
          </persName>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen J.</foreName>
            <surname>Vinju</surname>
            <initial>J. J.</initial>
          </persName>
        </editor>
        <imprint>
          <biblScope type="number">8706</biblScope>
          <publisher>
            <orgName>Springer<address><addrLine>Västerås, Sweden</addrLine></address></orgName>
          </publisher>
          <dateStruct>
            <year>2014</year>
          </dateStruct>
          <biblScope type="pages">353</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-01110914" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01110914</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid23" type="article" rend="year" n="cite:bruntink:hal-01110831">
      <identifiant type="hal" value="hal-01110831"/>
      <analytic>
        <title level="a">Looking Towards A Future Where Software Is Controlled By The Public and Not The Other Way Round</title>
        <author>
          <persName>
            <foreName>Magiel</foreName>
            <surname>Bruntink</surname>
            <initial>M.</initial>
          </persName>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-editorial-board="yes" x-international-audience="yes" id="rid00490">
        <idno type="issn">0926-4981</idno>
        <title level="j">ERCIM News</title>
        <imprint>
          <biblScope type="volume">99</biblScope>
          <dateStruct>
            <year>2014</year>
          </dateStruct>
          <biblScope type="pages">1</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-01110831" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01110831</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid18" type="article" rend="year" n="cite:cleve:hal-01110830">
      <identifiant type="hal" value="hal-01110830"/>
      <analytic>
        <title level="a">Software Quality</title>
        <author>
          <persName>
            <foreName>Anthony</foreName>
            <surname>Cleve</surname>
            <initial>A.</initial>
          </persName>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-editorial-board="yes" x-international-audience="yes" id="rid00490">
        <idno type="issn">0926-4981</idno>
        <title level="j">ERCIM News</title>
        <imprint>
          <dateStruct>
            <year>2014</year>
          </dateStruct>
          <biblScope type="pages">1</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-01110830" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01110830</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid24" type="article" rend="year" n="cite:vanderstorm:hal-01110829">
      <identifiant type="doi" value="10.1016/j.scico.2014.02.023"/>
      <identifiant type="hal" value="hal-01110829"/>
      <analytic>
        <title level="a">The design and implementation of Object Grammars</title>
        <author>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName>
            <foreName>William J.</foreName>
            <surname>Cook</surname>
            <initial>W. J.</initial>
          </persName>
          <persName>
            <foreName>Alex</foreName>
            <surname>Loh</surname>
            <initial>A.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-editorial-board="yes" x-international-audience="yes" id="rid01754">
        <idno type="issn">0167-6423</idno>
        <title level="j">Science of Computer Programming</title>
        <imprint>
          <biblScope type="volume">96</biblScope>
          <dateStruct>
            <year>2014</year>
          </dateStruct>
          <biblScope type="pages">460 - 487</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-01110829" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01110829</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid16" type="inproceedings" rend="year" n="cite:erdweg:hal-01110895">
      <identifiant type="hal" value="hal-01110895"/>
      <analytic>
        <title level="a">Capture-Avoiding and Hygienic Program Transformations</title>
        <author>
          <persName>
            <foreName>Sebastian</foreName>
            <surname>Erdweg</surname>
            <initial>S.</initial>
          </persName>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName>
            <foreName>Yi</foreName>
            <surname>Dai</surname>
            <initial>Y.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="yes" x-invited-conference="no" x-editorial-board="yes">
        <title level="m">ECOOP 2014 - Proceedings of European Conference on Object-Oriented Programming</title>
        <loc>Uppsala, Sweden</loc>
        <imprint>
          <publisher>
            <orgName>Springer</orgName>
          </publisher>
          <dateStruct>
            <month>July</month>
            <year>2014</year>
          </dateStruct>
          <biblScope type="pages">489 - 514</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-01110895" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01110895</ref>
        </imprint>
        <meeting id="cid67722">
          <title>European Conference on Object-Oriented Programming</title>
          <num>26</num>
          <abbr type="sigle">ECOOP</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid4" type="inproceedings" rend="year" n="cite:gouseti:hal-01110872">
      <identifiant type="doi" value="10.1145/2658761.2658765"/>
      <identifiant type="hal" value="hal-01110872"/>
      <analytic>
        <title level="a">Extensible language implementation with object algebras (short paper)</title>
        <author>
          <persName>
            <foreName>Maria</foreName>
            <surname>Gouseti</surname>
            <initial>M.</initial>
          </persName>
          <persName>
            <foreName>Chiel</foreName>
            <surname>Peters</surname>
            <initial>C.</initial>
          </persName>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="no" x-invited-conference="no" x-editorial-board="yes">
        <title level="m">GPE 2014 - International Conference on Generative Programming: Concepts and Experiences</title>
        <loc>Västerås, Sweden</loc>
        <title level="s">Proceedings of the International Conference on Generative Programming: Concepts and Experiences (GPCE, 2014)</title>
        <imprint>
          <dateStruct>
            <year>2014</year>
          </dateStruct>
          <biblScope type="pages">25 - 28</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-01110872" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01110872</ref>
        </imprint>
        <meeting id="cid283018">
          <title>International Conference on Generative Programming and Component Engineering</title>
          <num>13</num>
          <abbr type="sigle">GPCE</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid22" type="inproceedings" rend="year" n="cite:hills:hal-01110903">
      <identifiant type="doi" value="10.1145/2642937.2643017"/>
      <identifiant type="hal" value="hal-01110903"/>
      <analytic>
        <title level="a">Static, lightweight includes resolution for PHP</title>
        <author>
          <persName>
            <foreName>Mark</foreName>
            <surname>Hills</surname>
            <initial>M.</initial>
          </persName>
          <persName key="ateams-2014-idm28104">
            <foreName>Paul</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="yes" x-invited-conference="no" x-editorial-board="yes">
        <title level="m">ASE 29 Proceedings of International Conference on Automated Software Engineering 2014</title>
        <loc>Vasteras, Sweden</loc>
        <imprint>
          <dateStruct>
            <month>September</month>
            <year>2014</year>
          </dateStruct>
          <biblScope type="pages">503 - 514</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-01110903" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01110903</ref>
        </imprint>
        <meeting id="cid97448">
          <title>IEEE/ACM International Conference on Automated Software Engineering</title>
          <num>29</num>
          <abbr type="sigle">ASE</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid19" type="inproceedings" rend="year" n="cite:inostroza:hal-01110885">
      <identifiant type="doi" value="10.1007/978-3-319-08789-4_12"/>
      <identifiant type="hal" value="hal-01110885"/>
      <analytic>
        <title level="a">Tracing Program Transformations with String Origins</title>
        <author>
          <persName>
            <foreName>Pablo</foreName>
            <surname>Inostroza</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName>
            <foreName>Sebastian</foreName>
            <surname>Erdweg</surname>
            <initial>S.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="yes" x-invited-conference="no" x-editorial-board="yes">
        <title level="m">ICMT - Proceedings of International Conference on Model Transformation</title>
        <loc>York, United Kingdom</loc>
        <imprint>
          <dateStruct>
            <year>2014</year>
          </dateStruct>
          <biblScope type="pages">154 - 169</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-01110885" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01110885</ref>
        </imprint>
        <meeting id="cid292478">
          <title>International Conference on Model Transformation</title>
          <num>7</num>
          <abbr type="sigle">ICMT</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid3" type="inproceedings" rend="year" n="cite:inostroza:hal-01110869">
      <identifiant type="hal" value="hal-01110869"/>
      <analytic>
        <title level="a">Evolving Languages with Object Algebras</title>
        <author>
          <persName>
            <foreName>Pablo</foreName>
            <surname>Inostroza</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="yes" x-invited-conference="no" x-editorial-board="yes">
        <title level="m">BENEVOL 2014 - Proceedings of the Belgian-Netherlands Evoluation Workshop</title>
        <loc>Amsterdam, Netherlands</loc>
        <imprint>
          <dateStruct>
            <year>2014</year>
          </dateStruct>
          <biblScope type="pages">2</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-01110869" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01110869</ref>
        </imprint>
        <meeting id="cid37622">
          <title>BElgian-NEtherlands software eVOLution seminar</title>
          <num>2014</num>
          <abbr type="sigle">BENEVOL</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid25" type="inproceedings" rend="year" n="cite:inostroza:hal-01110851">
      <identifiant type="hal" value="hal-01110851"/>
      <analytic>
        <title level="a">The TTC 2014 Movie Database Case: Rascal Solution *</title>
        <author>
          <persName>
            <foreName>Pablo</foreName>
            <surname>Inostroza</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="yes" x-invited-conference="no" x-editorial-board="yes">
        <title level="m">Transformation Tool Contest</title>
        <loc>L'Aquila, Italy</loc>
        <title level="s">Proceedings of Transformation Tool Contest 2014 (TTC'14)</title>
        <imprint>
          <publisher>
            <orgName>CEUR</orgName>
          </publisher>
          <dateStruct>
            <year>2014</year>
          </dateStruct>
          <biblScope type="pages">155 - 159</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-01110851" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01110851</ref>
        </imprint>
        <meeting id="cid624031">
          <title>Transformation Tool Contest</title>
          <num>6</num>
          <abbr type="sigle">TTC</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid15" type="inproceedings" rend="year" n="cite:landman:hal-01110843">
      <identifiant type="hal" value="hal-01110843"/>
      <analytic>
        <title level="a">Empirical analysis of the relationship between CC and SLOC in a large corpus of Java methods</title>
        <author>
          <persName key="ateams-2014-idp74000">
            <foreName>Davy</foreName>
            <surname>Landman</surname>
            <initial>D.</initial>
          </persName>
          <persName>
            <foreName>Alexander</foreName>
            <surname>Serebrenik</surname>
            <initial>A.</initial>
          </persName>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="no" x-invited-conference="no" x-editorial-board="yes">
        <editor role="editor">
          <persName>
            <foreName>Leon M. F.</foreName>
            <surname>Moonen</surname>
            <initial>L. M. F.</initial>
          </persName>
          <persName>
            <foreName>Lori</foreName>
            <surname>Pollock</surname>
            <initial>L.</initial>
          </persName>
        </editor>
        <title level="m">IEEE International Conference on Software Maintenance and Evolution 2014</title>
        <loc>Victoria, Canada</loc>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society</orgName>
          </publisher>
          <dateStruct>
            <month>September</month>
            <year>2014</year>
          </dateStruct>
          <biblScope type="pages">221 - 230</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-01110843" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01110843</ref>
        </imprint>
        <meeting id="cid624469">
          <title>International Conference on Software Maintenance and Evolution</title>
          <num>30</num>
          <abbr type="sigle">ICSME</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid11" type="inproceedings" rend="year" n="cite:steindorfer:hal-01111004">
      <identifiant type="hal" value="hal-01111004"/>
      <analytic>
        <title level="a">Code Specialization for Memory Efficient Hash Tries (Short Paper)</title>
        <author>
          <persName key="ateams-2014-idp76544">
            <foreName>Michael J.</foreName>
            <surname>Steindorfer</surname>
            <initial>M. J.</initial>
          </persName>
          <persName key="ateams-2014-idm29392">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="yes" x-invited-conference="no" x-editorial-board="yes">
        <title level="m">GPCE - Proceedings of ACM International Conference on Generative Programming and Component Engineering 2014</title>
        <loc>Vasteras, Sweden</loc>
        <imprint>
          <publisher>
            <orgName>ACM</orgName>
          </publisher>
          <dateStruct>
            <month>September</month>
            <year>2014</year>
          </dateStruct>
          <biblScope type="pages">4</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-01111004" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01111004</ref>
        </imprint>
        <meeting id="cid283018">
          <title>International Conference on Generative Programming and Component Engineering</title>
          <num>13</num>
          <abbr type="sigle">GPCE</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid17" type="inproceedings" rend="year" n="cite:vanderploeg:hal-01110936">
      <identifiant type="doi" value="10.1145/2633357.2633360"/>
      <identifiant type="hal" value="hal-01110936"/>
      <analytic>
        <title level="a">Reflection without Remorse: Revealing a hidden sequence to speed up monadic reflection</title>
        <author>
          <persName key="ateams-2014-idp79088">
            <foreName>Atze</foreName>
            <surname>Van Der Ploeg</surname>
            <initial>A.</initial>
          </persName>
          <persName>
            <foreName>Oleg</foreName>
            <surname>Kiselyov</surname>
            <initial>O.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="yes" x-invited-conference="no" x-editorial-board="yes">
        <title level="m">Haskell '14 - Proceedings of the 2014 ACM SIGPLAN symposium on Haskell</title>
        <loc>Gothenburg, Sweden</loc>
        <imprint>
          <publisher>
            <orgName>ACM</orgName>
          </publisher>
          <dateStruct>
            <month>September</month>
            <year>2014</year>
          </dateStruct>
          <biblScope type="pages">133-144</biblScope>
          <ref xlink:href="https://hal.inria.fr/hal-01110936" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01110936</ref>
        </imprint>
        <meeting id="cid23222">
          <title>ACM SIGPLAN workshop on Haskell</title>
          <num>2014</num>
          <abbr type="sigle">Haskell</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid20" type="inproceedings" rend="year" n="cite:vanrozen:hal-01110847">
      <identifiant type="hal" value="hal-01110847"/>
      <analytic>
        <title level="a">Adapting Game Mechanics with Micro-Machinations</title>
        <author>
          <persName key="ateams-2014-idp80368">
            <foreName>Riemer</foreName>
            <surname>Van Rozen</surname>
            <initial>R.</initial>
          </persName>
          <persName>
            <foreName>Joris</foreName>
            <surname>Dormans</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="yes" x-invited-conference="no" x-editorial-board="yes">
        <title level="m">Foundations of Digital Games</title>
        <loc>Aboard Royal Caribbean Liberty of the Seas, sailing from Ford Lauderdale, Florida, United States</loc>
        <title level="s">Proceedings of the 9th International Conference on the Foundations of Digital Games</title>
        <imprint>
          <publisher>
            <orgName>Society for the Advancement of the Science of Digital Games</orgName>
          </publisher>
          <dateStruct>
            <month>April</month>
            <year>2014</year>
          </dateStruct>
          <ref xlink:href="https://hal.inria.fr/hal-01110847" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01110847</ref>
        </imprint>
        <meeting id="cid440760">
          <title>International Conference on the Foundations of Digital Games</title>
          <num>2014</num>
          <abbr type="sigle">FDG</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2014-bid21" type="inproceedings" rend="year" n="cite:vanrozen:hal-01110856">
      <identifiant type="hal" value="hal-01110856"/>
      <analytic>
        <title level="a">Model Differencing for Textual DSLs</title>
        <author>
          <persName key="ateams-2014-idp80368">
            <foreName>Riemer</foreName>
            <surname>Van Rozen</surname>
            <initial>R.</initial>
          </persName>
          <persName key="ateams-2014-idm26760">
            <foreName>Tijs</foreName>
            <surname>Van Der Storm</surname>
            <initial>T.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-scientific-popularization="no" x-international-audience="yes" x-proceedings="yes" x-invited-conference="no" x-editorial-board="yes">
        <title level="m">BENEVOL 2014 - Proceedings of the Belgian-Netherlands Evoluation Workshop</title>
        <loc>Amsterdam, Netherlands</loc>
        <imprint>
          <dateStruct>
            <year>2014</year>
          </dateStruct>
          <ref xlink:href="https://hal.inria.fr/hal-01110856" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-01110856</ref>
        </imprint>
        <meeting id="cid37622">
          <title>BElgian-NEtherlands software eVOLution seminar</title>
          <num>2014</num>
          <abbr type="sigle">BENEVOL</abbr>
        </meeting>
      </monogr>
    </biblStruct>
  </biblio>
</raweb>
