<?xml version="1.0" encoding="utf-8"?>
<raweb xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" year="2013">
  <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-2009-id59446">
      <firstname>Jurgen</firstname>
      <lastname>Vinju</lastname>
      <categoryPro>Chercheur</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Team leader, CWI</moreinfo>
    </person>
    <person key="ateams-2009-id59389">
      <firstname>Paul</firstname>
      <lastname>Klint</lastname>
      <categoryPro>Chercheur</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI, Professor</moreinfo>
    </person>
    <person key="ateams-2013-idp140501368744624">
      <firstname>Tijs</firstname>
      <lastname>Van Der Storm</lastname>
      <categoryPro>Chercheur</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI</moreinfo>
    </person>
    <person key="ateams-2013-idp140501368746928">
      <firstname>Jan</firstname>
      <lastname>Van Eijck</lastname>
      <categoryPro>Chercheur</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI, Professor</moreinfo>
    </person>
    <person key="ateams-2013-idp140501368749232">
      <firstname>Robert</firstname>
      <lastname>Van Liere</lastname>
      <categoryPro>Chercheur</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI, Professor</moreinfo>
    </person>
    <person key="ateams-2010-id59688">
      <firstname>Maarten</firstname>
      <lastname>Dijkema</lastname>
      <categoryPro>Technique</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI</moreinfo>
    </person>
    <person key="ateams-2009-id59620">
      <firstname>Bert</firstname>
      <lastname>Lisser</lastname>
      <categoryPro>Technique</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI</moreinfo>
    </person>
    <person key="ateams-2012-idp140526566063440">
      <firstname>Ali</firstname>
      <lastname>Afroozeh</lastname>
      <categoryPro>PhD</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI</moreinfo>
    </person>
    <person key="ateams-2011-idp140475672362720">
      <firstname>Paul</firstname>
      <lastname>Griffioen</lastname>
      <categoryPro>PhD</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI</moreinfo>
    </person>
    <person key="ateams-2013-idp140501368760752">
      <firstname>Pablo</firstname>
      <lastname>Inostroza Valdera</lastname>
      <categoryPro>PhD</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI</moreinfo>
    </person>
    <person key="ateams-2011-idp140475672365408">
      <firstname>Anastasia</firstname>
      <lastname>Izmaylova</lastname>
      <categoryPro>PhD</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI</moreinfo>
    </person>
    <person key="ateams-2011-idp140475672360032">
      <firstname>Davy</firstname>
      <lastname>Landman</lastname>
      <categoryPro>PhD</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI</moreinfo>
    </person>
    <person key="ateams-2012-idp140526566060752">
      <firstname>Michael</firstname>
      <lastname>Steindorfer</lastname>
      <categoryPro>PhD</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI</moreinfo>
    </person>
    <person key="ateams-2013-idp140501368769968">
      <firstname>Jeroen</firstname>
      <lastname>Van Den Bos</lastname>
      <categoryPro>PhD</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI, until Aug 2013</moreinfo>
    </person>
    <person key="ateams-2013-idp140501368772272">
      <firstname>Atze</firstname>
      <lastname>Van Der Ploeg</lastname>
      <categoryPro>PhD</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI</moreinfo>
    </person>
    <person key="ateams-2013-idp140501368774576">
      <firstname>Riemer</firstname>
      <lastname>Van Rozen</lastname>
      <categoryPro>PhD</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI</moreinfo>
    </person>
    <person key="ateams-2009-id59524">
      <firstname>Mark</firstname>
      <lastname>Hills</lastname>
      <categoryPro>PostDoc</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI, until Sep 2013</moreinfo>
    </person>
    <person key="ateams-2010-id59612">
      <firstname>Floor</firstname>
      <lastname>Sietsma</lastname>
      <categoryPro>PostDoc</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI, until Dec 2013</moreinfo>
    </person>
    <person key="ateams-2013-idp140501368781488">
      <firstname>Ashim</firstname>
      <lastname>Shahi</lastname>
      <categoryPro>PhD</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI</moreinfo>
    </person>
    <person key="ateams-2011-idp140475672349280">
      <firstname>Sunil</firstname>
      <lastname>Simon</lastname>
      <categoryPro>PostDoc</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI, until Aug 2013</moreinfo>
    </person>
    <person key="ateams-2011-idp140475672351968">
      <firstname>Vadim</firstname>
      <lastname>Zaytsev</lastname>
      <categoryPro>PostDoc</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>CWI, until Nov 2013</moreinfo>
    </person>
    <person key="modal-2011-idp140650213064320">
      <firstname>Sandrine</firstname>
      <lastname>Meilen</lastname>
      <categoryPro>Assistant</categoryPro>
      <research-centre>Lille</research-centre>
      <moreinfo>Inria</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 and Digital Forensics to
experiment with this subject. In Computational Auditing we are focusing on
modeling interactive questionnaires and in Digital Forensics on optimization and
specialization of file format recognition.</p>
    </subsection>
    <subsection id="uid4" level="1">
      <bodyTitle>Highlights of the Year</bodyTitle>
      <simplelist>
        <li id="uid5">
          <p noindent="true">Paul Klint was Knighted Officer in the order of Oranje Nassau
based on his contributions to science and education.</p>
        </li>
        <li id="uid6">
          <p noindent="true">Paul Klint was appointed Research Fellow, Centrum Wiskunde &amp; Informatica</p>
        </li>
      </simplelist>
    </subsection>
  </presentation>
  <fondements id="uid7">
    <bodyTitle>Research Program</bodyTitle>
    <subsection id="uid8" 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="uid9" 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 aoproach 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 is described in: a fixed base language (either C or PL/1 variant)
is extended 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="uid10" 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="uid11" 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="uid12">
          <p noindent="true">Select a code fragment to refactor.</p>
        </li>
        <li id="uid13">
          <p noindent="true">Select a refactoring to apply to it.</p>
        </li>
        <li id="uid14">
          <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="uid15" 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="uid16" 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="uid17" 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="uid18" 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-2013-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="uid19" 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,
interpeters 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-2013-bid1" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. .</p>
      </subsection>
    </subsection>
  </fondements>
  <logiciels id="uid20">
    <bodyTitle>Software and Platforms</bodyTitle>
    <subsection id="uid21" level="1">
      <bodyTitle>MicroMachinations</bodyTitle>
      <participants>
        <person key="ateams-2013-idp140501368774576">
          <firstname>Riemer</firstname>
          <lastname>Van Rozen</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
      </participants>
      <descriptionlist>
        <label>Characterization:</label>
        <li id="uid22">
          <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="uid23">
</li>
        <label>Objective:</label>
        <li id="uid24">
          <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="uid25">
          <p noindent="true">Game designers</p>
        </li>
        <label>Impact:</label>
        <li id="uid26">
          <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="uid27">
          <p noindent="true">None.</p>
        </li>
        <label>Engineering:</label>
        <li id="uid28">
          <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="uid29">
          <p noindent="true">
            <ref xlink:href="#ateams-2013-bid2" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>
          </p>
        </li>
      </descriptionlist>
      <subsection id="uid30" level="2">
        <bodyTitle>Novelties</bodyTitle>
        <simplelist>
          <li id="uid31">
            <p noindent="true">Development on MMLib was started which allows the execution of game economies directly within games.</p>
          </li>
        </simplelist>
      </subsection>
    </subsection>
    <subsection id="uid32" level="1">
      <bodyTitle>Derric</bodyTitle>
      <participants>
        <person key="ateams-2013-idp140501368744624">
          <firstname>Tijs</firstname>
          <lastname>Van Der Storm</lastname>
        </person>
        <person key="ateams-2013-idp140501368769968">
          <firstname>Jeroen</firstname>
          <lastname>Van Den Bos</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
      </participants>
      <descriptionlist>
        <label>Characterization:</label>
        <li id="uid33">
          <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="uid34">
          <p noindent="true">
            <ref xlink:href="http://www.derric-lang.org" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>www.<allowbreak/>derric-lang.<allowbreak/>org</ref>
          </p>
        </li>
        <label>Objective:</label>
        <li id="uid35">
          <p noindent="true">Encapsulate all
the variability in the construction of so-called “carving” algorithms, then generate the fastest and most accurate implementations.
Carving algorithms recover information that has been deleted or otherwise
scrambled on digital media such as hard-disks, usb sticks and mobile phones.</p>
        </li>
        <label>Users:</label>
        <li id="uid36">
          <p noindent="true">Digital forensic investigation specialists</p>
        </li>
        <label>Impact:</label>
        <li id="uid37">
          <p noindent="true">Derric has the potential of revolutionizing the carving area. It does in 1500 lines of code what other systems need tens of thousands of lines for with the same accuracy. Derric will be an enabler for faster, more specialized and more successful location of important evidence material.</p>
        </li>
        <label>Competition:</label>
        <li id="uid38">
          <p noindent="true">Derric competes in a small market of specialized open-source and commercial carving tools.</p>
        </li>
        <label>Engineering:</label>
        <li id="uid39">
          <p noindent="true">Derric is a Rascal program of 1.5 kloc designed by two persons.</p>
        </li>
        <label>Publications:</label>
        <li id="uid40">
          <p noindent="true"><ref xlink:href="#ateams-2013-bid3" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, <ref xlink:href="#ateams-2013-bid4" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/><ref xlink:href="#ateams-2013-bid5" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, <ref xlink:href="#ateams-2013-bid6" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, <ref xlink:href="#ateams-2013-bid7" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/></p>
        </li>
      </descriptionlist>
      <subsection id="uid41" level="2">
        <bodyTitle>Novelties</bodyTitle>
        <simplelist>
          <li id="uid42">
            <p noindent="true">Construction of a 1TB benchmark based on Wikipedia images.</p>
          </li>
          <li id="uid43">
            <p noindent="true">The Derric DSL for digital forensics now features Trinity, a
runtime IDE to debug file format descriptions <ref xlink:href="#ateams-2013-bid3" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
          </li>
        </simplelist>
      </subsection>
    </subsection>
    <subsection id="uid44" level="1">
      <bodyTitle>Rascal</bodyTitle>
      <participants>
        <person key="ateams-2009-id59389">
          <firstname>Paul</firstname>
          <lastname>Klint</lastname>
        </person>
        <person key="ateams-2009-id59446">
          <firstname>Jurgen</firstname>
          <lastname>Vinju</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
        <person key="ateams-2013-idp140501368744624">
          <firstname>Tijs</firstname>
          <lastname>Van Der Storm</lastname>
        </person>
        <person key="ateams-2013-idp140501368769968">
          <firstname>Jeroen</firstname>
          <lastname>Van Den Bos</lastname>
        </person>
        <person key="ateams-2009-id59524">
          <firstname>Mark</firstname>
          <lastname>Hills</lastname>
        </person>
        <person key="ateams-2009-id59620">
          <firstname>Bert</firstname>
          <lastname>Lisser</lastname>
        </person>
        <person key="ateams-2013-idp140501368772272">
          <firstname>Atze</firstname>
          <lastname>Van Der Ploeg</lastname>
        </person>
        <person key="ateams-2011-idp140475672351968">
          <firstname>Vadim</firstname>
          <lastname>Zaytsev</lastname>
        </person>
        <person key="ateams-2011-idp140475672365408">
          <firstname>Anastasia</firstname>
          <lastname>Izmaylova</lastname>
        </person>
        <person key="ateams-2012-idp140526566060752">
          <firstname>Michael</firstname>
          <lastname>Steindorfer</lastname>
        </person>
        <person key="ateams-2012-idp140526566063440">
          <firstname>Ali</firstname>
          <lastname>Afroozeh</lastname>
        </person>
        <person key="ateams-2013-idp140501368781488">
          <firstname>Ashim</firstname>
          <lastname>Shahi</lastname>
        </person>
      </participants>
      <descriptionlist>
        <label>Characterization:</label>
        <li id="uid45">
          <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="uid46">
          <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="uid47">
          <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="uid48">
          <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="uid49">
          <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="uid50">
          <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="uid51">
          <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="uid52">
          <p noindent="true"><ref xlink:href="#ateams-2013-bid8" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, <ref xlink:href="#ateams-2013-bid9" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, <ref xlink:href="#ateams-2013-bid10" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, <ref xlink:href="#ateams-2013-bid11" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, <ref xlink:href="#ateams-2013-bid9" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/></p>
        </li>
      </descriptionlist>
      <subsection id="uid53" level="2">
        <bodyTitle>Novelties</bodyTitle>
        <simplelist>
          <li id="uid54">
            <p noindent="true">A new language-parametric model to represent software
projects, called M3 <ref xlink:href="#ateams-2013-bid12" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
          </li>
          <li id="uid55">
            <p noindent="true">Performance improvements of the Rascal interpreter throughout.</p>
          </li>
          <li id="uid56">
            <p noindent="true">Initial version of a compiler for Rascal, based on new
language construct guarded coroutines.</p>
          </li>
          <li id="uid57">
            <p noindent="true">Origin tracking for values and expressions of type string.</p>
          </li>
          <li id="uid58">
            <p noindent="true">A library for accessing and analyzing Excel and Word
documents.</p>
          </li>
          <li id="uid59">
            <p noindent="true">Improvements to the Rascal IDE: better output handling,
hyper linked source code locations in the console, dedicated
project explorer view.</p>
          </li>
          <li id="uid60">
            <p noindent="true">Content completion for DSLs implemented in Rascal.</p>
          </li>
          <li id="uid61">
            <p noindent="true">Significant improvements to the Rascal static type checker.</p>
          </li>
          <li id="uid62">
            <p noindent="true">Experiments with improved GLL parsing (Iguana).</p>
          </li>
          <li id="uid63">
            <p noindent="true">Several new example DSL implementations to illustrate Rascal
as a language workbench: Marvol, a DSL for controlling NAO robots, and two
implementations of a DSL for questionnaires (DemoQLes and QL-R-Kemi).</p>
          </li>
        </simplelist>
      </subsection>
    </subsection>
    <subsection id="uid64" level="1">
      <bodyTitle>IDE Meta-tooling Platform</bodyTitle>
      <participants>
        <person key="ateams-2009-id59446">
          <firstname>Jurgen</firstname>
          <lastname>Vinju</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
        <person key="ateams-2012-idp140526566060752">
          <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="uid65">
          <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="uid66">
          <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="uid67">
          <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="uid68">
          <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="uid69">
          <p noindent="true">IMP is popular among meta programmers especially for it provides the right level of abstraction.</p>
        </li>
        <label>Competition:</label>
        <li id="uid70">
          <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="uid71">
          <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="uid72">
          <p noindent="true">
            <ref xlink:href="#ateams-2013-bid13" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>
          </p>
        </li>
      </descriptionlist>
      <subsection id="uid73" level="2">
        <bodyTitle>Novelties</bodyTitle>
        <simplelist>
          <li id="uid74">
            <p noindent="true">The IMP program database (PDB) was completely redesigned.</p>
          </li>
        </simplelist>
      </subsection>
    </subsection>
    <subsection id="uid75" level="1">
      <bodyTitle>Ensō</bodyTitle>
      <participants>
        <person key="ateams-2013-idp140501368744624">
          <firstname>Tijs</firstname>
          <lastname>Van Der Storm</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
      </participants>
      <descriptionlist>
        <label>Characterization:</label>
        <li id="uid76">
          <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="uid77">
          <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="uid78">
          <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="uid79">
          <p noindent="true">All programmers.</p>
        </li>
        <label>Impact:</label>
        <li id="uid80">
          <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="uid81">
          <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="uid82">
          <p noindent="true">Ensō is a completely self-hosted system in 7000 lines of code.</p>
        </li>
        <label>Publications:</label>
        <li id="uid83">
          <p noindent="true"><ref xlink:href="#ateams-2013-bid14" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>,
<ref xlink:href="#ateams-2013-bid15" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, <ref xlink:href="#ateams-2013-bid16" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/></p>
        </li>
      </descriptionlist>
      <subsection id="uid84" level="2">
        <bodyTitle>Novelties</bodyTitle>
        <simplelist>
          <li id="uid85">
            <p noindent="true">A compiler for a dedicated Ensō language, which targets
JavaScript.</p>
          </li>
          <li id="uid86">
            <p noindent="true">Added a demo based on the LWC'13 questionnaire language
assignment.</p>
          </li>
        </simplelist>
      </subsection>
    </subsection>
    <subsection id="uid87" level="1">
      <bodyTitle>LiveQL</bodyTitle>
      <participants>
        <person key="ateams-2013-idp140501368744624">
          <firstname>Tijs</firstname>
          <lastname>Van Der Storm</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
      </participants>
      <descriptionlist>
        <label>Characterization:</label>
        <li id="uid88">
          <p noindent="true">A1, SO-3, SM-1, EM-2, SDL-4, OC-DA-4-CD-4-MS-4-TPM-4</p>
        </li>
        <label>WWW:</label>
        <li id="uid89">
          <p noindent="true">
            <ref xlink:href="https://github.com/cwi-swat/liveql" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>github.<allowbreak/>com/<allowbreak/>cwi-swat/<allowbreak/>liveql</ref>
          </p>
        </li>
        <label>Objective:</label>
        <li id="uid90">
          <p noindent="true">Experimenting with live programming concepts and
techniques in the context of domain specific languages (DSLs).</p>
        </li>
        <label>Users:</label>
        <li id="uid91">
          <p noindent="true">End-user programmers.</p>
        </li>
        <label>Impact:</label>
        <li id="uid92">
          <p noindent="true">LiveQL is an experiment in making a DSL “live”, i.e.
any change to the DSL program is immediately reflected in the
running program. This has the potential to widen the audience of DSL
users to include end-user programmers.</p>
        </li>
        <label>Competition:</label>
        <li id="uid93">
          <p noindent="true">The end-goal is to provide live end-user
programming environments with domain-specific checking and
optimization. The most similar tools are spreadsheet applications.
However, these are still quite general.</p>
        </li>
        <label>Engineering:</label>
        <li id="uid94">
          <p noindent="true">LiveQL is built in Java, using the ANTLR parser
generator.</p>
        </li>
        <label>Publications:</label>
        <li id="uid95">
          <p noindent="true">
            <ref xlink:href="#ateams-2013-bid17" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>
          </p>
        </li>
      </descriptionlist>
    </subsection>
    <subsection id="uid96" level="1">
      <bodyTitle>QL-R-Kemi</bodyTitle>
      <participants>
        <person key="ateams-2013-idp140501368744624">
          <firstname>Tijs</firstname>
          <lastname>Van Der Storm</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
      </participants>
      <descriptionlist>
        <label>Characterization:</label>
        <li id="uid97">
          <p noindent="true">A1, SO-3, SM-1, EM-2, SDL-4, OC-DA-4-CD-4-MS-4-TPM-4</p>
        </li>
        <label>WWW:</label>
        <li id="uid98">
          <p noindent="true">
            <ref xlink:href="https://github.com/cwi-swat/QL-R-Kemi" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">https://<allowbreak/>github.<allowbreak/>com/<allowbreak/>cwi-swat/<allowbreak/>QL-R-Kemi</ref>
          </p>
        </li>
        <label>Objective:</label>
        <li id="uid99">
          <p noindent="true">Demonstrate the language workbench features of the
Rascal meta programming language and environment. Investigate domain
specific language application in the domain of questionnaires and
surveys.</p>
        </li>
        <label>Users:</label>
        <li id="uid100">
          <p noindent="true">Students, scientists.</p>
        </li>
        <label>Impact:</label>
        <li id="uid101">
          <p noindent="true">Questionnaires are common in social science, tax
administration and statistics. Discovering the right abstractions
for describing questionnaires has the potential to significantly
improve the practice of constructing questionnaire software.</p>
        </li>
        <label>Competition:</label>
        <li id="uid102">
          <p noindent="true">Traditional survey tools are often wizard-based,
lack computational capabilities and lack a formal foundation. The
same language is built in a number of different language
workbenches which served as a benchmark
to compare such tools <ref xlink:href="#ateams-2013-bid0" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
        </li>
        <label>Engineering:</label>
        <li id="uid103">
          <p noindent="true">Uses all features of the Rascal language
workbench.</p>
        </li>
        <label>Publications:</label>
        <li id="uid104">
          <p noindent="true">
            <ref xlink:href="#ateams-2013-bid0" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>
          </p>
        </li>
      </descriptionlist>
    </subsection>
  </logiciels>
  <resultats id="uid105">
    <bodyTitle>New Results</bodyTitle>
    <subsection id="uid106" level="1">
      <bodyTitle>Empirical analyses of source code</bodyTitle>
      <p>Rascal was used to perform empirical investigations of existing
source code bases. First of all, Davy Landman performed an analysis
of project management source code to investigate if domain knowledge
is present in source code and, if so, how easy it is to extract that
knowledge <ref xlink:href="#ateams-2013-bid18" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. An earlier experiment in static
analysis of PHP code was finalized by Mark Hills. The result is a
deep study of feature usage in a large number of well-known PHP
projects <ref xlink:href="#ateams-2013-bid19" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. Vadim Zaytsev conducted an
experiment to recognize micro-patterns in grammars and
meta-models <ref xlink:href="#ateams-2013-bid20" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. Finally, Jeroen van den Bos
performed a deep empirical study to find out as to how far a
domain-specific language facilitates
evolution <ref xlink:href="#ateams-2013-bid4" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. The results showed that the
Derric DSL did indeed cover most evolution scenarios, but there is
still room for improving the language. In all cases Rascal proved to
be instrumental in performing the experiments.
</p>
    </subsection>
    <subsection id="uid107" level="1">
      <bodyTitle>Better parsing and disambiguation</bodyTitle>
      <p>Ali Afroozeh worked on a new implementation of GLL parsing, called
Iguana. Unlike traditional parser generators, Iguana adopted the
interpretive approach that is also used in the Ensō parser. This
experiment is still ongoing, but the new parser
is expected to be integrated into Rascal beginning of 2014.
Additionally, a longstanding problem of disambiguation using operator
precedence was solved <ref xlink:href="#ateams-2013-bid21" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. Traditional
approaches are either not safe (i.e. they make the language smaller),
or they do not support complex precedence rules as found in, for
instance, OCaml.
</p>
    </subsection>
    <subsection id="uid108" level="1">
      <bodyTitle>Extensible Programming</bodyTitle>
      <p>Modular and extensible implementation of languages could have major
impact on how DSLs will be implemented. Anastasia Izmaylova continued
here work on improving the extensibility of Rascal's module system,
by providing open recursive function combinators.</p>
      <p>Extensible programming is traditionally plagued by what has become
known as “the expression problem”, which captures the fact that
most programming languages either support extension of data variants,
or extension of operations, but not both. Object Algebras are simple
solution to this problem. In <ref xlink:href="#ateams-2013-bid22" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/> we have
extended this model to support feature-oriented programming. These
results are currently being integrated into the Ensō system.
</p>
    </subsection>
    <subsection id="uid109" level="1">
      <bodyTitle>DSLs for Games</bodyTitle>
      <p>In collaboration with the Hogeschool van Amsterdam, Riemer van Rozen
developed a workbench for MicroMachinations, a DSL for game
economies <ref xlink:href="#ateams-2013-bid2" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. Completely built using Rascal,
this DSL environment features syntax highlighting, static analysis,
interactive simulation, and SPIN-based model-checking of process
models describing the economy of a game. The project shows the
versatility of Rascal as a language workbench for the development of
DSLs.
</p>
    </subsection>
    <subsection id="uid110" level="1">
      <bodyTitle>DSLs for Questionnaires</bodyTitle>
      <p>In the context of computational auditing we have intensified our
research on DSLs for questionnaires. It was proposed by Tijs van der
Storm as the benchmark task for the Language Workbench Challenge
2013 (LWC'13), which has resulted in a thorough overview and
qualitative comparison of language
workbenches <ref xlink:href="#ateams-2013-bid0" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. As a side-effect, there are
now two publicly available Rascal implementations of the
questionnaire DSL (QL-R-Kemi and Demoqles). A first step has been
made to collect all implementations to create a “chrestomathy” for further study and
dissemination of language workbench concepts and DSL implementation
patterns. Other results include a formal semantics of the dynamics
of questionnaires <ref xlink:href="#ateams-2013-bid23" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, and an initial
prototype of a questionnaire model for modeling the Dutch Tax Income
filing application by Pablo Inostroza Valdera.
</p>
    </subsection>
    <subsection id="uid111" level="1">
      <bodyTitle>Live Programming</bodyTitle>
      <p>Live programming aims to bring the dynamic execution of programs
closer to the programmer, ideally almost obliterating the gap
between editing and executing the program. We are working on applying
such principles in the context of DSLs. This has lead to two
results: a live programming environment for a DSL for
questionnaires <ref xlink:href="#ateams-2013-bid17" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, and Trinity, a data-driven
IDE for Derric <ref xlink:href="#ateams-2013-bid3" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. Riemer van Rozen has worked
on applying similar techniques to MicroMachinations, so that game
economies can be adapted at runtime.
</p>
    </subsection>
    <subsection id="uid112" level="1">
      <bodyTitle>Visualization and interaction</bodyTitle>
      <p>Atze van der Ploeg worked on designing new algorithms and abstractions
in the domain of visualization and abstraction.
His first result is a fast algorithm for drawing
non-layered, tidy trees <ref xlink:href="#ateams-2013-bid24" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. DeForm is a library
for the declarative specification of resolution-independent 2D
graphics <ref xlink:href="#ateams-2013-bid25" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. In <ref xlink:href="#ateams-2013-bid26" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/> he
proposed a reformulation of the traditional functional reactive
programming (FRP) framework, which is both simple and efficient to
implement.
</p>
    </subsection>
    <subsection id="uid113" level="1">
      <bodyTitle>Guarded Coroutines</bodyTitle>
      <p>Anastasia Izmaylova and Paul Klint have built an initial version of a
compiler for Rascal. The performance improvements with respect to the
interpreter are impressive. Moreover, the design of compiler is based
on a new construct for implementing languages with complex
backtracking and pattern matching semantics: guarded coroutines. This
construct will be instrumental in extending the Rascal language with new
kinds of control-flow and concurrency.
</p>
    </subsection>
    <subsection id="uid114" level="1">
      <bodyTitle>Data structures for meta programming</bodyTitle>
      <p>The efficiency of many meta programs is dependent on the internal data
structures used to represent collections, trees, relations etc.
Michael Steindorfer has worked on comparing the performance of various
persistent collection libraries (e.g., those used in Rascal, Clojure,
and Scala). This has lead to a redesign of the PDB collection library
that underlies the data structures of Rascal. Furthermore, he
developed the Orpheus tool, an object redunancy profiler to assess the
effects of maximal sharing.
</p>
    </subsection>
  </resultats>
  <partenariat id="uid115">
    <bodyTitle>Partnerships and Cooperations</bodyTitle>
    <subsection id="uid116" level="1">
      <bodyTitle>National Initiatives</bodyTitle>
      <subsection id="uid117" 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="uid118" 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="uid119" level="2">
        <bodyTitle>Model-Driven Engineering in Digital Forensics</bodyTitle>
        <p>In this project ATEAMS works with the Dutch National Forensics Institute on
next generation carving software for recovering evidence from damaged or
erased data storage media.</p>
      </subsection>
      <subsection id="uid120" level="2">
        <bodyTitle>Next Generation Auditing: Data-assurance as a service</bodyTitle>
        <p>This 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="uid121" level="1">
      <bodyTitle>European Initiatives</bodyTitle>
      <subsection id="uid122" level="2">
        <bodyTitle>FP7 Projects</bodyTitle>
        <p>OSSMETER aims to extend the state-of-the-art in the field of automated analysis
and measurement of open-source software (OSS), and develop a platform that will
support decision makers in the process of discovering, comparing, assessing and
monitoring the health, quality, impact and activity of open-source software.
The project started in October 2012. ATEAMS contributes to this project by
focusing on software analysis and related areas.</p>
      </subsection>
    </subsection>
    <subsection id="uid123" level="1">
      <bodyTitle>International Research Visitors</bodyTitle>
      <subsection id="uid124" level="2">
        <bodyTitle>Visits of International Scientists</bodyTitle>
        <simplelist>
          <li id="uid125">
            <p noindent="true">Oscar Nierstrasz, PhD, Professor - Professor of Computer Science at the Institute of Computer Science (IAM) of the University of Bern</p>
          </li>
          <li id="uid126">
            <p noindent="true">Anya Helene Bagge, PhD - University of Bergen, Norway</p>
          </li>
          <li id="uid127">
            <p noindent="true">Sebastian Erdweg, PhD - TU Darmstadt</p>
          </li>
        </simplelist>
        <subsection id="uid128" level="3">
          <bodyTitle>Internships</bodyTitle>
          <simplelist>
            <li id="uid129">
              <p noindent="true">Kevin van der Vlist</p>
            </li>
            <li id="uid130">
              <p noindent="true">Davy Meers</p>
            </li>
            <li id="uid131">
              <p noindent="true">Wouter Kwakernaak</p>
            </li>
            <li id="uid132">
              <p noindent="true">Jimi van der Woning</p>
            </li>
            <li id="uid133">
              <p noindent="true">Ioana Rucareanu</p>
            </li>
            <li id="uid134">
              <p noindent="true">Ioannis Tzanellis</p>
            </li>
            <li id="uid135">
              <p noindent="true">George Marminidis</p>
            </li>
            <li id="uid136">
              <p noindent="true">Vlad Lep</p>
            </li>
            <li id="uid137">
              <p noindent="true">Dimitrios Kyritsis</p>
            </li>
            <li id="uid138">
              <p noindent="true">Chris Mulder</p>
            </li>
          </simplelist>
        </subsection>
      </subsection>
    </subsection>
  </partenariat>
  <diffusion id="uid139">
    <bodyTitle>Dissemination</bodyTitle>
    <subsection id="uid140" level="1">
      <bodyTitle>Scientific Animation</bodyTitle>
      <simplelist>
        <li id="uid141">
          <p noindent="true">Jan van Eijck : Member of the NWO committee “Vrije Competitie” for Computer Science.</p>
        </li>
        <li id="uid142">
          <p noindent="true">Jan van Eijck : Member of the Advisory Board (`Raad van Advies') of the Artificial
Intelligence Curriculum, University of Groningen (since Summer 2013).</p>
        </li>
        <li id="uid143">
          <p noindent="true">Jan van Eijck : Program committee Tenth International Conference on Computational Semantics (IWCS)
University of Potsdam, Germany, March 2013</p>
        </li>
        <li id="uid144">
          <p noindent="true">Jan van Eijck : Program committee LORI-4 (4th International Workshop on Logic, Rationality and Interaction),</p>
        </li>
        <li id="uid145">
          <p noindent="true">Jan van Eijck : Program committee TTNLS-2014 (Type Theory for Natural Language Semantics)</p>
        </li>
        <li id="uid146">
          <p noindent="true">Jan van Eijck : Editor of Journal of Logics and their Applications (new IfCoLog
journal with open access, to be published by College Publications).</p>
        </li>
        <li id="uid147">
          <p noindent="true">Jan van Eijck : Reviewer Artificial Intelligence</p>
        </li>
        <li id="uid148">
          <p noindent="true">Jan van Eijck : Reviewer ESSLLI</p>
        </li>
        <li id="uid149">
          <p noindent="true">Jan van Eijck : Reviewer Journal of Semantics,</p>
        </li>
        <li id="uid150">
          <p noindent="true">Jan van Eijck : Reviewer Journal of Logic and Computation</p>
        </li>
        <li id="uid151">
          <p noindent="true">Jan van Eijck : Reviewer Fundamenta Informaticae</p>
        </li>
        <li id="uid152">
          <p noindent="true">Jan van Eijck : Reviewer Synthese,</p>
        </li>
        <li id="uid153">
          <p noindent="true">Jan van Eijck : Reviewer Journal of Philosophical Logic</p>
        </li>
        <li id="uid154">
          <p noindent="true">Jan van Eijck : Reviewer Journal of Logic Language and Information</p>
        </li>
        <li id="uid155">
          <p noindent="true">Jan van Eijck : Reviewer Cambridge University Press</p>
        </li>
        <li id="uid156">
          <p noindent="true">Jan van Eijck : Reviewer Studia Logica.</p>
        </li>
        <li id="uid157">
          <p noindent="true">Mark Hills : Program committee Working Conference on
Reverse Engineering (WCRE/CSMR) Tool-track</p>
        </li>
        <li id="uid158">
          <p noindent="true">Mark Hills : Reviewer International Symposium on Symbolic and
Numeric Algorithms for Scientific Computing (SYNASC)</p>
        </li>
        <li id="uid159">
          <p noindent="true">Mark Hills : Program committee CALCO Tools</p>
        </li>
        <li id="uid160">
          <p noindent="true">Paul Klint : Editor Science of Computer Programming</p>
        </li>
        <li id="uid161">
          <p noindent="true">Paul Klint : Editor Springer Service Science Book Series</p>
        </li>
        <li id="uid162">
          <p noindent="true">Paul Klint : Visiting Professor University of London, Royal Holloway</p>
        </li>
        <li id="uid163">
          <p noindent="true">Paul Klint : Treasurer European Association for Programming Languages and Systems (EAPLS)</p>
        </li>
        <li id="uid164">
          <p noindent="true">Paul Klint : Steering committee member ETAPS</p>
        </li>
        <li id="uid165">
          <p noindent="true">Paul Klint : Board member Instituut voor Programmatuur en Architectuur (IPA)</p>
        </li>
        <li id="uid166">
          <p noindent="true">Paul Klint : External advisor PlanComps project (UK)</p>
        </li>
        <li id="uid167">
          <p noindent="true">Paul Klint : Full Professor at UvA, Software Engineering Chair</p>
        </li>
        <li id="uid168">
          <p noindent="true">Paul Klint : Director Master Software Engineering, UvA</p>
        </li>
        <li id="uid169">
          <p noindent="true">Paul Klint : Program committee Software Language Engineering
(SLE)</p>
        </li>
        <li id="uid170">
          <p noindent="true">Paul Klint : Program committee Scalable Language Specifications (SLS 2013)</p>
        </li>
        <li id="uid171">
          <p noindent="true">Paul Klint : Program committee WasDETT 2013</p>
        </li>
        <li id="uid172">
          <p noindent="true">Paul Klint : Program committee CSMR WCRE ERA 2014</p>
        </li>
        <li id="uid173">
          <p noindent="true">Paul Klint : EAPLS PhD Awards 2013</p>
        </li>
        <li id="uid174">
          <p noindent="true">Atze van der Ploeg : Reviewer Journal of Universal Computer Science</p>
        </li>
        <li id="uid175">
          <p noindent="true">Tijs van der Storm : Program committee International Workshop on Advanced Software Development Tools and Techniques - (WASDeTT)</p>
        </li>
        <li id="uid176">
          <p noindent="true">Tijs van der Storm : Program committee International Conference
on Generative Programming: Concepts &amp; Experiences (GPCE)</p>
        </li>
        <li id="uid177">
          <p noindent="true">Tijs van der Storm : Program committee Working Conference on
Reverse Engineering (WCRE/CSMR) Tool-track</p>
        </li>
        <li id="uid178">
          <p noindent="true">Tijs van der Storm : Reviewer ACM Conference on Object-Oriented
Programming Systems, Languages and Applications (OOPSLA)</p>
        </li>
        <li id="uid179">
          <p noindent="true">Tijs van der Storm : Reviewer ACM SIGPLAN-SIGACT Symposium on
Principles of Programming Languages (POPL)</p>
        </li>
        <li id="uid180">
          <p noindent="true">Tijs van der Storm : Member working group IFIP TC2 WGLD 2.16: Working Group on Language Design</p>
        </li>
        <li id="uid181">
          <p noindent="true">Tijs van der Storm : Reviewer Science of Computer Programming</p>
        </li>
        <li id="uid182">
          <p noindent="true">Tijs van der Storm : Reviewer Journal of Systems and Software</p>
        </li>
        <li id="uid183">
          <p noindent="true">Tijs van der Storm : Co-organizer Lorentz Workshop on Language
Interaction Design (LIXD)</p>
        </li>
        <li id="uid184">
          <p noindent="true">Tijs van der Storm : Co-organizer 1st Dutch Conference on
Software Development Automation (SDA'13)</p>
        </li>
        <li id="uid185">
          <p noindent="true">Tijs van der Storm : Co-organizer CWI Scientific Meetings</p>
        </li>
        <li id="uid186">
          <p noindent="true">Tijs van der Storm : Organizer Normalized Systems Seminar</p>
        </li>
        <li id="uid187">
          <p noindent="true">Jurgen Vinju : Member steering committee IEEE International
Workshop on Source Code Analysis and Manipulation (SCAM)</p>
        </li>
        <li id="uid188">
          <p noindent="true">Jurgen Vinju : General Chair IEEE International
Workshop on Source Code Analysis and Manipulation (SCAM)</p>
        </li>
        <li id="uid189">
          <p noindent="true">Jurgen Vinju : Observer IFIP TC2 Working Group 2.3 Programming Methodology</p>
        </li>
        <li id="uid190">
          <p noindent="true">Jurgen Vinju : Program chair International Workshop on Advanced Software Development Tools and Techniques - (WASDeTT)</p>
        </li>
        <li id="uid191">
          <p noindent="true">Jurgen Vinju : Program committee International Conference on Model Transformation - (ICMT)</p>
        </li>
        <li id="uid192">
          <p noindent="true">Jurgen Vinju : Program committee chair WCRE/CSMR Tool Track</p>
        </li>
        <li id="uid193">
          <p noindent="true">Jurgen Vinju : Organizer International Workshop on Parsing@SLE</p>
        </li>
        <li id="uid194">
          <p noindent="true">Jurgen Vinju : Program committee WCRE/CSMR ERA track</p>
        </li>
        <li id="uid195">
          <p noindent="true">Vadim Zaytsev : Steering committee Seminar Series on Advanced
Techniques &amp; Tools for Software Evolution (SATToSE)</p>
        </li>
        <li id="uid196">
          <p noindent="true">Vadim Zaytsev : Program commitee Software Quality Management (SQM)</p>
        </li>
        <li id="uid197">
          <p noindent="true">Vadim Zaytsev : Program commitee IEEE International
Workshop on Source Code Analysis and Manipulation (SCAM)</p>
        </li>
        <li id="uid198">
          <p noindent="true">Vadim Zaytsev : Program commitee Extreme Modeling Workshop (XM)</p>
        </li>
        <li id="uid199">
          <p noindent="true">Vadim Zaytsev : Judging commitee ACM Student Research Competition</p>
        </li>
        <li id="uid200">
          <p noindent="true">Vadim Zaytsev : Program committee co-chair Working Conference on
Reverse Engineering (WCRE/CSMR) Tool-track</p>
        </li>
        <li id="uid201">
          <p noindent="true">Vadim Zaytsev : Reviewer Science of Computer Programming</p>
        </li>
        <li id="uid202">
          <p noindent="true">Vadim Zaytsev : Workshop co-chair Open and Original Problems in
Software Language Engineering (OOPSLE)</p>
        </li>
        <li id="uid203">
          <p noindent="true">Vadim Zaytsev : Social media co-chair ACM/IEEE 17th
International Conference on Model Driven Engineering Languages and
Systems (MoDELS)</p>
        </li>
        <li id="uid204">
          <p noindent="true">Vadim Zaytsev: Colloquium organiser of Programming Environment Meetings (PEM)</p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid205" level="1">
      <bodyTitle>Teaching - Supervision - Juries</bodyTitle>
      <subsection id="uid206" level="2">
        <bodyTitle>Teaching</bodyTitle>
        <sanspuceslist>
          <li id="uid207">
            <p noindent="true">Master : Jurgen Vinju, Paul Klint, Software Evolution, 6 EC, Universiteit van Amsterdam, The Netherlands</p>
          </li>
          <li id="uid208">
            <p noindent="true">Master : Tijs van der Storm, Jurgen Vinju, Software Construction, 6 EC, Universiteit van Amsterdam, The Netherlands</p>
          </li>
          <li id="uid209">
            <p noindent="true">Master : Jan van Eijck, Bert Lisser, Vadim Zaytsev, Software Testing, 6
EC, Universiteit van Amsterdam, The Netherlands</p>
          </li>
          <li id="uid210">
            <p noindent="true">Master : Jan van Eijck, Functional Algorithm
Specification, 6 EC, Universiteit van Amsterdam, The Netherlands</p>
          </li>
        </sanspuceslist>
      </subsection>
      <subsection id="uid211" level="2">
        <bodyTitle>Supervision</bodyTitle>
        <sanspuceslist>
          <li id="uid212">
            <p noindent="true">PhD in progress : Paul Griffioen, Next Generation Computational
Auditing, started 2011, supervisors Paul Klint, Philip Elsas</p>
          </li>
          <li id="uid213">
            <p noindent="true">PhD in progress : Anastasia Izmaylova, A General Language
Parametric Framework for Software Refactoring, started 2011,
supervisors Paul Klint, Jurgen Vinju</p>
          </li>
          <li id="uid214">
            <p noindent="true">PhD in progress : Jeroen van den Bos, Digital Forensics Software
Engineering, started 2010, supervisors Paul Klint, Tijs van der
Storm</p>
          </li>
          <li id="uid215">
            <p noindent="true">PhD in progress : Atze van der Ploeg, Rapid Language Parametric
Prototyping of Software Visualization and Exploration, started 2011,
supervisor Paul Klint, Tijs van der Storm</p>
          </li>
          <li id="uid216">
            <p noindent="true">PhD in progress : Davy Landman, Recovery and Synthesis of Domain
Specific Language Design, started 2011, supervisors Jurgen Vinju,
Paul Klint, supervisors Jurgen Vinju .</p>
          </li>
          <li id="uid217">
            <p noindent="true">PhD in progress : Riemer van Rozen, Software Engineering
Principles for the Gaming Domain, started 2011, supervisor Paul
Klint, Tijs van der Storm</p>
          </li>
          <li id="uid218">
            <p noindent="true">PhD in progress : Ali Afroozeh, Ambiguity and Disambiguation for
Context-free Grammars, started 2012, supervisor Jurgen Vinju</p>
          </li>
          <li id="uid219">
            <p noindent="true">PhD in progress : Pablo Inostroza Valdera, Rich UIs for
Domain-Specific Languages, started 2013, supervisor Tijs van der
Storm</p>
          </li>
          <li id="uid220">
            <p noindent="true">PhD in progress : Ashim Shahi, Principled Quality Assessment of
Software, started 2012, supervisor Paul Klint, Jurgen Vinju</p>
          </li>
          <li id="uid221">
            <p noindent="true">PhD in progress : Michael Steindorfer, Scaling meta-programming
to data-programming, started 2012, supervisor Paul Klint, Jurgen
Vinju</p>
          </li>
        </sanspuceslist>
        <p>Paul Klint, Jurgen Vinju, Tijs van der Storm, Mark Hills, Jeroen van
den Bos and Jan van Eijck together also supervised more than 30 master
thesis projects for Universiteit van Amsterdam in 2013.</p>
      </subsection>
      <subsection id="uid222" level="2">
        <bodyTitle>Juries</bodyTitle>
        <simplelist>
          <li id="uid223">
            <p noindent="true">Jan van Eijck, PhD: Arno Bastenhof, Universiteit Utrecht, The Netherlands</p>
          </li>
          <li id="uid224">
            <p noindent="true">Jan van Eijck, PhD: Frédéric Moisan, Université de Toulouse,
France</p>
          </li>
          <li id="uid225">
            <p noindent="true">Paul Klint, Phd: Romulo Goncalvez, Universiteit van Amsterdam,
The Netherlands</p>
          </li>
          <li id="uid226">
            <p noindent="true">Jurgen Vinju, PhD: C.P.T. de Gouw, Universiteit Leiden, The
Netherlands.</p>
          </li>
        </simplelist>
      </subsection>
    </subsection>
    <subsection id="uid227" level="1">
      <bodyTitle>Popularization</bodyTitle>
      <simplelist>
        <li id="uid228">
          <p noindent="true">Jan van Eijck : “Why Learn Haskell?”, Talk for UvA Programming Summer School,
Amsterdam, July 2, 2013.</p>
        </li>
        <li id="uid229">
          <p noindent="true">Paul Klint, Davy Landman: “Hoe ontstond de eerste computer?”
(“The origin of the first computer”), Public lecture for broad
audience, NEMO, Amsterdam.</p>
        </li>
        <li id="uid230">
          <p noindent="true">Paul Klint, “How to test a meta-program?”, invited talk at the
Workshop on Scalable Language Specification (SLS 2013).</p>
        </li>
        <li id="uid231">
          <p noindent="true">Paul Klint, "BaMa: Key to the Future?”, invited talk at
IW1010: 10 Years of UvA Information Sciences, Amsterdam</p>
        </li>
        <li id="uid232">
          <p noindent="true">Paul Klint, “Understanding the Quality of Open Source
Projects”, invited talk at SATToSe, Bern</p>
        </li>
        <li id="uid233">
          <p noindent="true">Davy Landman : “What Does Control Flow Really Look Like?
Eyeballing the Cyclomatic Complexity Metric”, poster and
presentation at ICT.OPEN (NWO networking event).</p>
        </li>
        <li id="uid234">
          <p noindent="true">Michael Steindorfer : “Object Redundancy Profiling in Java”,
poster and presentation at ICT.OPEN (NWO networking event).</p>
        </li>
        <li id="uid235">
          <p noindent="true">Tijs van der Storm : “Domain-specific languages”, Guest
lecture Bachelor Computer Science, Universiteit van Amsterdam</p>
        </li>
        <li id="uid236">
          <p noindent="true">Tijs van der Storm : “Opportunities and Risks of MDD – The
case of Derric: a DSL for digital forensics”, Presentation at
CodeGeneration 2013.</p>
        </li>
        <li id="uid237">
          <p noindent="true">Tijs van der Storm : “Implementing Domain-specific languages
using Rascal”, Invited Presentation at Sioux: Source of your
technology.</p>
        </li>
        <li id="uid238">
          <p noindent="true">Tijs van der Storm, Kevin van der Vlist, Jimi van der Woning :
“Questionnaires in Rascal”, participation Language Workbench
Challenge 2013 (LWC'13).</p>
        </li>
        <li id="uid239">
          <p noindent="true">Tijs van der Storm, Alex Loh, “Questionnaires in Ensō”, participation
Language Workbench Challenge 2013 (LWC'13).</p>
        </li>
        <li id="uid240">
          <p noindent="true">Tijs van der Storm : “QL: a language for questionnaires”,
assignment description LWC'13.</p>
        </li>
        <li id="uid241">
          <p noindent="true">Tijs van der Storm : “Software Development Automation Research:
Collaboration with Industry”, presentation at the 1st Dutch
conference on Software Development Automation (SDA'13).</p>
        </li>
        <li id="uid242">
          <p noindent="true">Jurgen Vinju : “Modularity”, Guest
lecture Bachelor Computer Science, Universiteit van Amsterdam</p>
        </li>
        <li id="uid243">
          <p noindent="true">Jurgen Vinju : “Software Analysis and Transformation with
Rascal” , Presentation NBIC BioAssist meeting (BioAssist)</p>
        </li>
        <li id="uid244">
          <p noindent="true">Jurgen Vinju, Tijs van der Storm, Atze van der Ploeg, Anastasia
Izmaylova, Ali Afroozeh : CWI Open Day, demonstration of NAO robot
programming to children using dedicated DSL “Marvol”.</p>
        </li>
        <li id="uid245">
          <p noindent="true">Jurgen Vinju, Tijs van der Storm, Atze van der Ploeg : “CWI In
Bedrijf” (CWI and Industry) , demonstration of Rascal language
workbench using the NAO robot DSL “Marvol”.</p>
        </li>
        <li id="uid246">
          <p noindent="true">Vadim Zaytsev : “A Snappy Introduction to Metaprogramming in
Rascal”, RedDevCon'13.</p>
        </li>
        <li id="uid247">
          <p noindent="true">Vadim Zaytsev : “Modeling Software Structures with
GrammarLab”, Tutorial at MoDELS'13.</p>
        </li>
      </simplelist>
    </subsection>
  </diffusion>
  <biblio id="bibliography" html="bibliography" numero="10" titre="Bibliography">
    
    <biblStruct id="ateams-2013-bid32" type="inproceedings" rend="refer" n="refercite:Basten2010">
      <analytic>
        <title level="a">Tracking Down the Origins of Ambiguity in Context-Free Grammars</title>
        <author>
          <persName key="ateams-2009-id59548">
            <foreName>Bas</foreName>
            <surname>Basten</surname>
            <initial>B.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <editor role="editor">
          <persName>
            <foreName>Ana</foreName>
            <surname>Cavalcanti</surname>
            <initial>A.</initial>
          </persName>
          <persName key="veridis-2010-id59714">
            <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-2013-bid13" 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-2009-id59446">
            <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>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-2013-bid36" 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-2013-bid33" 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>S.</foreName>
            <surname>Erdweg</surname>
            <initial>S.</initial>
          </persName>
          <persName>
            <foreName>T.</foreName>
            <surname>Storm</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>W. 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>A.</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>Vlist</surname>
            <initial>K. B.</initial>
          </persName>
          <persName>
            <foreName>G.</foreName>
            <surname>Wachsmuth</surname>
            <initial>G.</initial>
          </persName>
          <persName>
            <foreName>J. M.</foreName>
            <surname>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-2013-bid11" 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 key="ateams-2009-id59524">
            <foreName>Mark</foreName>
            <surname>Hills</surname>
            <initial>M.</initial>
          </persName>
          <persName key="ateams-2009-id59389">
            <foreName>Paul</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2009-id59446">
            <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-2013-bid9" 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 key="ateams-2009-id59524">
            <foreName>Mark</foreName>
            <surname>Hills</surname>
            <initial>M.</initial>
          </persName>
          <persName key="ateams-2009-id59389">
            <foreName>Paul</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2009-id59446">
            <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-2013-bid8" 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 key="ateams-2009-id59524">
            <foreName>Mark</foreName>
            <surname>Hills</surname>
            <initial>M.</initial>
          </persName>
          <persName key="ateams-2009-id59389">
            <foreName>Paul</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2009-id59446">
            <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-2013-bid10" 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 key="ateams-2009-id59524">
            <foreName>Mark</foreName>
            <surname>Hills</surname>
            <initial>M.</initial>
          </persName>
          <persName key="ateams-2009-id59389">
            <foreName>Paul</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2009-id59474">
            <foreName>Tijs</foreName>
            <surname>van der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName key="ateams-2009-id59446">
            <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-2013-bid35" 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-2009-id59389">
            <foreName>Paul</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2009-id59474">
            <foreName>Tijs</foreName>
            <surname>van der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName key="ateams-2009-id59446">
            <foreName>Jurgen</foreName>
            <surname>Vinju</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="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-2013-bid34" 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-2009-id59389">
            <foreName>Paul</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2009-id59474">
            <foreName>Tijs</foreName>
            <surname>van der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName key="ateams-2009-id59446">
            <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-2013-bid16" 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>A.</foreName>
            <surname>Loh</surname>
            <initial>A.</initial>
          </persName>
          <persName key="ateams-2009-id59474">
            <foreName>Tijs</foreName>
            <surname>van der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName>
            <foreName>J. William</foreName>
            <surname>Cook</surname>
            <initial>J. W.</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-2013-bid14" 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>B. C. d. S.</foreName>
            <surname>Oliveira</surname>
            <initial>B. C. d. S.</initial>
          </persName>
          <persName>
            <foreName>T.</foreName>
            <surname>Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName>
            <foreName>A.</foreName>
            <surname>Loh</surname>
            <initial>A.</initial>
          </persName>
          <persName>
            <foreName>W. 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, 2013)</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-2013-bid5" 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 key="ateams-2009-id59572">
            <foreName>Jeroen</foreName>
            <surname>van den Bos</surname>
            <initial>J.</initial>
          </persName>
          <persName key="ateams-2009-id59474">
            <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-2013-bid7" 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 key="ateams-2009-id59572">
            <foreName>J.</foreName>
            <surname>van den Bos</surname>
            <initial>J.</initial>
          </persName>
          <persName key="ateams-2009-id59474">
            <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-2013-bid6" 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 key="ateams-2009-id59572">
            <foreName>J.</foreName>
            <surname>van den Bos</surname>
            <initial>J.</initial>
          </persName>
          <persName key="ateams-2009-id59474">
            <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-2013-bid37" 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-2009-id59446">
            <foreName>Jurgen J.</foreName>
            <surname>Vinju</surname>
            <initial>J. J.</initial>
          </persName>
          <persName key="ateams-2011-idp140475672346592">
            <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-2013-bid15" 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-2009-id59474">
            <foreName>Tijs</foreName>
            <surname>van der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName>
            <foreName>J. William</foreName>
            <surname>Cook</surname>
            <initial>J. W.</initial>
          </persName>
          <persName>
            <foreName>A.</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-2013-bid28" type="article" rend="year" n="cite:sietsma:hal-00923396">
      <identifiant type="hal" value="hal-00923396"/>
      <analytic>
        <title level="a">Common Knowledge In Email Exchanges</title>
        <author>
          <persName>
            <foreName>F. A. G.</foreName>
            <surname>Sietsma</surname>
            <initial>F. A. G.</initial>
          </persName>
          <persName>
            <foreName>K. R.</foreName>
            <surname>Apt</surname>
            <initial>K. R.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-editorial-board="yes" x-international-audience="yes" id="rid00021">
        <idno type="issn">1529-3785</idno>
        <title level="j">ACM Transactions on Computational Logic</title>
        <imprint>
          <biblScope type="volume">14</biblScope>
          <biblScope type="number">3</biblScope>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <biblScope type="pages">1 - 23</biblScope>
          <ref xlink:href="http://hal.inria.fr/hal-00923396" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923396</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid27" type="article" rend="year" n="cite:sietsma:hal-00923395">
      <identifiant type="hal" value="hal-00923395"/>
      <analytic>
        <title level="a">Action Emulation Between Canonical Models</title>
        <author>
          <persName>
            <foreName>F. A. G.</foreName>
            <surname>Sietsma</surname>
            <initial>F. A. G.</initial>
          </persName>
          <persName>
            <foreName>D. J. N.</foreName>
            <surname>Eijck</surname>
            <initial>D. J. N.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-editorial-board="yes" x-international-audience="yes" id="rid024647">
        <idno type="issn">0022-3611</idno>
        <title level="j">Journal of Philosophical Logic</title>
        <imprint>
          <biblScope type="volume">42</biblScope>
          <biblScope type="number">6</biblScope>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <biblScope type="pages">905 - 925</biblScope>
          <ref xlink:href="http://hal.inria.fr/hal-00923395" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923395</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid24" type="article" rend="year" n="cite:vanderploeg:hal-00923389">
      <identifiant type="hal" value="hal-00923389"/>
      <analytic>
        <title level="a">Drawing Non-Layered Tidy Trees In Linear Time</title>
        <author>
          <persName>
            <foreName>A. J.</foreName>
            <surname>Van Der Ploeg</surname>
            <initial>A. J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-editorial-board="yes" x-international-audience="yes" id="rid01871">
        <idno type="issn">0038-0644</idno>
        <title level="j">Software – Practice and Experience</title>
        <imprint>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/hal-00923389" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923389</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid1" type="article" rend="year" n="cite:vanderstorm:hal-00923385">
      <identifiant type="hal" value="hal-00923385"/>
      <analytic>
        <title level="a">Towards Multilingual Programming Environments</title>
        <author>
          <persName key="ateams-2009-id59474">
            <foreName>T.</foreName>
            <surname>van der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName>
            <foreName>J. J.</foreName>
            <surname>Vinju</surname>
            <initial>J. J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-editorial-board="yes" x-international-audience="yes" id="rid01845">
        <idno type="issn">0167-6423</idno>
        <title level="j">Science of Computer Programming</title>
        <imprint>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/hal-00923385" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923385</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid23" type="article" rend="year" n="cite:vaneijck:hal-00923384">
      <identifiant type="hal" value="hal-00923384"/>
      <analytic>
        <title level="a">Understanding Information Update In Questionnaires</title>
        <author>
          <persName>
            <foreName>D. J. N.</foreName>
            <surname>van Eijck</surname>
            <initial>D. J. N.</initial>
          </persName>
          <persName key="ateams-2009-id59474">
            <foreName>T.</foreName>
            <surname>van der Storm</surname>
            <initial>T.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-editorial-board="yes" x-international-audience="yes" id="rid01845">
        <idno type="issn">0167-6423</idno>
        <title level="j">Science of Computer Programming</title>
        <imprint>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/hal-00923384" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923384</ref>
        </imprint>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid21" type="inproceedings" rend="year" n="cite:afroozeh:hal-00923391">
      <identifiant type="hal" value="hal-00923391"/>
      <analytic>
        <title level="a">Safe Specification Of Operator Precedence Rules</title>
        <author>
          <persName key="ateams-2012-idp140526566063440">
            <foreName>A.</foreName>
            <surname>Afroozeh</surname>
            <initial>A.</initial>
          </persName>
          <persName>
            <foreName>M. G. J.</foreName>
            <surname>Van Den Brand</surname>
            <initial>M. G. J.</initial>
          </persName>
          <persName>
            <foreName>A.</foreName>
            <surname>Johnstone</surname>
            <initial>A.</initial>
          </persName>
          <persName>
            <foreName>E.</foreName>
            <surname>Scott</surname>
            <initial>E.</initial>
          </persName>
          <persName>
            <foreName>J. J.</foreName>
            <surname>Vinju</surname>
            <initial>J. J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <editor role="editor">
          <persName>
            <foreName>K.</foreName>
            <surname>Czarnecki</surname>
            <initial>K.</initial>
          </persName>
          <persName>
            <foreName>G.</foreName>
            <surname>Hedin</surname>
            <initial>G.</initial>
          </persName>
        </editor>
        <title level="m">Proceedings of the International Conference on Software Language Engineering (SLE, 2013)</title>
        <imprint>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/hal-00923391" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923391</ref>
        </imprint>
        <meeting id="cid300965">
          <title>International Conference on Software Language Engineering</title>
          <num>6</num>
          <abbr type="sigle">SLE</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid0" type="inproceedings" rend="year" n="cite: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>S.</foreName>
            <surname>Erdweg</surname>
            <initial>S.</initial>
          </persName>
          <persName key="ateams-2009-id59474">
            <foreName>T.</foreName>
            <surname>van der Storm</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>W. 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>A.</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>Palatnik</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>
        <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>
        <meeting id="cid300965">
          <title>International Conference on Software Language Engineering</title>
          <num>6</num>
          <abbr type="sigle">SLE</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid19" type="inproceedings" rend="year" n="cite:hills:hal-00923390">
      <identifiant type="hal" value="hal-00923390"/>
      <analytic>
        <title level="a">An Empirical Study Of PHP Feature Usage</title>
        <author>
          <persName>
            <foreName>M. A.</foreName>
            <surname>Hills</surname>
            <initial>M. A.</initial>
          </persName>
          <persName key="ateams-2009-id59389">
            <foreName>P.</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName>
            <foreName>J. J.</foreName>
            <surname>Vinju</surname>
            <initial>J. J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <editor role="editor">
          <persName>
            <foreName>M</foreName>
            <surname>Pezze</surname>
            <initial>M.</initial>
          </persName>
          <persName>
            <foreName>M</foreName>
            <surname>Harman</surname>
            <initial>M.</initial>
          </persName>
        </editor>
        <title level="m">Proceedings of the International Symposium on Software Testing and Analysis (ISSTA, 2013)</title>
        <imprint>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/hal-00923390" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923390</ref>
        </imprint>
        <meeting id="cid624278">
          <title>International Symposium on Software Testing and Analysis</title>
          <num>2013</num>
          <abbr type="sigle">ISSTA</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid18" type="inproceedings" rend="year" n="cite:klint:hal-00923392">
      <identifiant type="hal" value="hal-00923392"/>
      <analytic>
        <title level="a">Exploring The Limits Of Domain Model Recovery</title>
        <author>
          <persName key="ateams-2009-id59389">
            <foreName>P.</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2011-idp140475672360032">
            <foreName>Davy</foreName>
            <surname>Landman</surname>
            <initial>D.</initial>
          </persName>
          <persName>
            <foreName>J. J.</foreName>
            <surname>Vinju</surname>
            <initial>J. J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <title level="m">29th IEEE International Conference on Software Maintenance (ICSM), 2013</title>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society</orgName>
          </publisher>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <biblScope type="pages">120 - 129</biblScope>
          <ref xlink:href="http://hal.inria.fr/hal-00923392" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923392</ref>
        </imprint>
        <meeting id="cid85927">
          <title>IEEE International Conference on Software Maintenance</title>
          <num>29</num>
          <abbr type="sigle">ICSM</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid25" type="inproceedings" rend="year" n="cite:klint:hal-00923381">
      <identifiant type="hal" value="hal-00923381"/>
      <analytic>
        <title level="a">A Library For Declarative Resolution-Independent 2D Graphics</title>
        <author>
          <persName key="ateams-2009-id59389">
            <foreName>P.</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName>
            <foreName>A. J.</foreName>
            <surname>Van Der Ploeg</surname>
            <initial>A. J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <title level="m">Proceedings of the Practical Aspects of Declarative Languages (PADL, 2013)</title>
        <imprint>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/hal-00923381" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923381</ref>
        </imprint>
        <meeting id="cid317726">
          <title>International Symposium on Practical Aspects of Declarative Languages</title>
          <num>15</num>
          <abbr type="sigle">PADL</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid2" type="inproceedings" rend="year" n="cite: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-2009-id59389">
            <foreName>P.</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName key="ateams-2011-idp140475672370784">
            <foreName>R.</foreName>
            <surname>van Rozen</surname>
            <initial>R.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <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>
        <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="http://hal.inria.fr/hal-00923383" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923383</ref>
        </imprint>
        <meeting id="cid300965">
          <title>International Conference on Software Language Engineering</title>
          <num>6</num>
          <abbr type="sigle">SLE</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid30" type="inproceedings" rend="year" n="cite:lammel:hal-00923398">
      <identifiant type="hal" value="hal-00923398"/>
      <analytic>
        <title level="a">Language Support For Megamodel Renarration</title>
        <author>
          <persName>
            <foreName>R.</foreName>
            <surname>Lämmel</surname>
            <initial>R.</initial>
          </persName>
          <persName key="ateams-2011-idp140475672351968">
            <foreName>V.</foreName>
            <surname>Zaytsev</surname>
            <initial>V.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <editor role="editor">
          <persName>
            <foreName>J.</foreName>
            <surname>de Lara</surname>
            <initial>J.</initial>
          </persName>
          <persName>
            <foreName>Davide</foreName>
            <surname>Di Ruscio</surname>
            <initial>D.</initial>
          </persName>
          <persName>
            <foreName>Alfonso</foreName>
            <surname>Pierantonio</surname>
            <initial>A.</initial>
          </persName>
        </editor>
        <title level="m">Proceedings of the Extreme Modeling Workshop (XM, 2013)</title>
        <imprint>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/hal-00923398" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923398</ref>
        </imprint>
        <meeting id="cid624277">
          <title>Extreme Modeling Workshop</title>
          <num>2013</num>
          <abbr type="sigle">XM</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid22" type="inproceedings" rend="year" n="cite:oliveira:hal-00923387">
      <identifiant type="hal" value="hal-00923387"/>
      <analytic>
        <title level="a">Feature-Oriented Programming With Object Algebras</title>
        <author>
          <persName>
            <foreName>B. C. d. S.</foreName>
            <surname>Oliveira</surname>
            <initial>B. C. d. S.</initial>
          </persName>
          <persName key="ateams-2009-id59474">
            <foreName>T.</foreName>
            <surname>van der Storm</surname>
            <initial>T.</initial>
          </persName>
          <persName>
            <foreName>A.</foreName>
            <surname>Loh</surname>
            <initial>A.</initial>
          </persName>
          <persName>
            <foreName>W. 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, 2013)</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>
        <meeting id="cid67722">
          <title>European Conference on Object-Oriented Programming</title>
          <num>25</num>
          <abbr type="sigle">ECOOP</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid4" type="inproceedings" rend="year" n="cite:vandenbos:hal-00923401">
      <identifiant type="hal" value="hal-00923401"/>
      <analytic>
        <title level="a">A Case Study In Evidence-Based DSL Evolution</title>
        <author>
          <persName key="ateams-2009-id59572">
            <foreName>J.</foreName>
            <surname>van den Bos</surname>
            <initial>J.</initial>
          </persName>
          <persName key="ateams-2009-id59474">
            <foreName>T.</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>P.</foreName>
            <surname>Van Gorp</surname>
            <initial>P.</initial>
          </persName>
          <persName>
            <foreName>T.</foreName>
            <surname>Ritter</surname>
            <initial>T.</initial>
          </persName>
          <persName>
            <foreName>L. M.</foreName>
            <surname>Rose</surname>
            <initial>L. M.</initial>
          </persName>
        </editor>
        <title level="m">Proceedings of the 9th European Conference on Modelling Foundations and Applications</title>
        <title level="s">Lecture Notes in Computer Science</title>
        <imprint>
          <biblScope type="volume">7949</biblScope>
          <publisher>
            <orgName>Springer</orgName>
          </publisher>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <biblScope type="pages">207 - 219</biblScope>
          <ref xlink:href="http://hal.inria.fr/hal-00923401" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923401</ref>
        </imprint>
        <meeting id="cid389804">
          <title>European Conference on Modeling Foundations and Applications</title>
          <num>9</num>
          <abbr type="sigle">ECMFA</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid3" type="inproceedings" rend="year" n="cite:vandenbos:hal-00923400">
      <identifiant type="hal" value="hal-00923400"/>
      <analytic>
        <title level="a">TRINITY: An IDE For The Matrix</title>
        <author>
          <persName key="ateams-2009-id59572">
            <foreName>J.</foreName>
            <surname>van den Bos</surname>
            <initial>J.</initial>
          </persName>
          <persName key="ateams-2009-id59474">
            <foreName>T.</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 28th IEEE International Conference on Software Maintenance</title>
        <imprint>
          <publisher>
            <orgName>IEEE</orgName>
          </publisher>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <biblScope type="pages">520 - 523</biblScope>
          <ref xlink:href="http://hal.inria.fr/hal-00923400" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923400</ref>
        </imprint>
        <meeting id="cid85927">
          <title>IEEE International Conference on Software Maintenance</title>
          <num>29</num>
          <abbr type="sigle">ICSM</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid26" type="inproceedings" rend="year" n="cite:vanderploeg:hal-00923382">
      <identifiant type="hal" value="hal-00923382"/>
      <analytic>
        <title level="a">Monadic Functional Reactive Programming</title>
        <author>
          <persName>
            <foreName>A. J.</foreName>
            <surname>Van Der Ploeg</surname>
            <initial>A. J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <editor role="editor">
          <persName>
            <foreName>C</foreName>
            <surname>Shan</surname>
            <initial>C.</initial>
          </persName>
        </editor>
        <title level="m">Proceedings of the ACM SIGPLAN Haskell Symposium</title>
        <imprint>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/hal-00923382" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923382</ref>
        </imprint>
        <meeting id="cid23222">
          <title>ACM SIGPLAN workshop on Haskell</title>
          <num>2013</num>
          <abbr type="sigle">Haskell</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid17" type="inproceedings" rend="year" n="cite:vanderstorm:hal-00923388">
      <identifiant type="hal" value="hal-00923388"/>
      <analytic>
        <title level="a">Semantic Deltas For Live DSL Environments</title>
        <author>
          <persName key="ateams-2009-id59474">
            <foreName>T.</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 International Workshop on Live Programming (LIVE, 2013)</title>
        <imprint>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/hal-00923388" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923388</ref>
        </imprint>
        <meeting id="cid624279">
          <title>International Workshop on Live Programming</title>
          <num>1</num>
          <abbr type="sigle">LIVE</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid20" type="inproceedings" rend="year" n="cite:zaytsev:hal-00923399">
      <identifiant type="hal" value="hal-00923399"/>
      <analytic>
        <title level="a">Micropatterns In Grammars</title>
        <author>
          <persName key="ateams-2011-idp140475672351968">
            <foreName>V.</foreName>
            <surname>Zaytsev</surname>
            <initial>V.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <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>
        <imprint>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/hal-00923399" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923399</ref>
        </imprint>
        <meeting id="cid300965">
          <title>International Conference on Software Language Engineering</title>
          <num>6</num>
          <abbr type="sigle">SLE</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid29" type="inproceedings" rend="year" n="cite:zaytsev:hal-00923397">
      <identifiant type="hal" value="hal-00923397"/>
      <analytic>
        <title level="a">Pending Evolution Of Grammars</title>
        <author>
          <persName key="ateams-2011-idp140475672351968">
            <foreName>V.</foreName>
            <surname>Zaytsev</surname>
            <initial>V.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <editor role="editor">
          <persName>
            <foreName>J.</foreName>
            <surname>de Lara</surname>
            <initial>J.</initial>
          </persName>
          <persName>
            <foreName>Davide</foreName>
            <surname>Di Ruscio</surname>
            <initial>D.</initial>
          </persName>
          <persName>
            <foreName>Alfonso</foreName>
            <surname>Pierantonio</surname>
            <initial>A.</initial>
          </persName>
        </editor>
        <title level="m">Proceedings of the Extreme Modeling Workshop (XM, 2013)</title>
        <imprint>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/hal-00923397" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923397</ref>
        </imprint>
        <meeting id="cid624277">
          <title>Extreme Modeling Workshop</title>
          <num>2013</num>
          <abbr type="sigle">XM</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid31" type="techreport" rend="year" n="cite:griffioen:hal-00923380">
      <identifiant type="hal" value="hal-00923380"/>
      <monogr>
        <title level="m">Type Inference For Linear Algebra With Units Of Measurement</title>
        <author>
          <persName>
            <foreName>P. R.</foreName>
            <surname>Griffioen</surname>
            <initial>P. R.</initial>
          </persName>
        </author>
        <imprint>
          <biblScope type="number">SwAT-1302</biblScope>
          <dateStruct>
            <year>2013</year>
          </dateStruct>
          <biblScope type="pages">1 - 32</biblScope>
          <ref xlink:href="http://hal.inria.fr/hal-00923380" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923380</ref>
        </imprint>
      </monogr>
      <note type="typdoc">Technical Report</note>
    </biblStruct>
    
    <biblStruct id="ateams-2013-bid12" type="techreport" rend="year" n="cite: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-2011-idp140475672365408">
            <foreName>A.</foreName>
            <surname>Izmaylova</surname>
            <initial>A.</initial>
          </persName>
          <persName key="ateams-2009-id59389">
            <foreName>P.</foreName>
            <surname>Klint</surname>
            <initial>P.</initial>
          </persName>
          <persName>
            <foreName>A.</foreName>
            <surname>Shahi</surname>
            <initial>A.</initial>
          </persName>
          <persName>
            <foreName>J. J.</foreName>
            <surname>Vinju</surname>
            <initial>J. 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="http://hal.inria.fr/hal-00923379" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://<allowbreak/>hal.<allowbreak/>inria.<allowbreak/>fr/<allowbreak/>hal-00923379</ref>
        </imprint>
      </monogr>
      <note type="typdoc">Research Report</note>
    </biblStruct>
  </biblio>
</raweb>
