<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE raweb PUBLIC "-//INRIA//DTD " "raweb2.dtd">
<raweb xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" year="2011">
  <identification id="phoenix" isproject="true">
    <shortname>PHOENIX</shortname>
    <projectName>Programming Language Technology For Communication Services</projectName>
    <theme-de-recherche>Distributed Systems and Services</theme-de-recherche>
    <domaine-de-recherche>Networks, Systems and Services, Distributed Computing</domaine-de-recherche>
    <structure_exterieure type="Labs">
      <libelle>Laboratoire Bordelais de Recherche en Informatique (LaBRI)</libelle>
    </structure_exterieure>
    <structure_exterieure type="Organism">
      <libelle>CNRS</libelle>
    </structure_exterieure>
    <structure_exterieure type="Organism">
      <libelle>Ecole nationale supérieure d'électronique, informatique et radiocommunications de Bordeaux</libelle>
    </structure_exterieure>
    <structure_exterieure type="Organism">
      <libelle>Université de Bordeaux</libelle>
    </structure_exterieure>
    <UR name="Bordeaux"/>
    <keywords>
      <term>Programming Languages</term>
      <term>Software Engineering</term>
      <term>Domain-Specific Languages</term>
    </keywords>
    <moreinfo/>
  </identification>
  <team id="uid1">
    <person key="phoenix-2006-idm382810690416">
      <firstname>Charles</firstname>
      <lastname>Consel</lastname>
      <affiliation>UnivFr</affiliation>
      <categoryPro>Enseignant</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Team Leader, Professor, ENSEIRB</moreinfo>
      <hdr>oui</hdr>
    </person>
    <person key="protheo-2006-idm196801648560">
      <firstname>Emilie</firstname>
      <lastname>Balland</lastname>
      <affiliation>INRIA</affiliation>
      <categoryPro>Chercheur</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Junior Researcher, Inria</moreinfo>
    </person>
    <person key="phoenix-2011-idm528864730944">
      <firstname>Bernard</firstname>
      <lastname>N'Kaoua</lastname>
      <affiliation>UnivFr</affiliation>
      <categoryPro>Enseignant</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Professor, University Bordeaux Segalen (Associate Member)</moreinfo>
    </person>
    <person key="phoenix-2011-idm528864727856">
      <firstname>Hélène</firstname>
      <lastname>Sauzéon</lastname>
      <affiliation>UnivFr</affiliation>
      <categoryPro>Enseignant</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Associate Professor, University Bordeaux Segalen (Associate Member)</moreinfo>
    </person>
    <person key="phoenix-2006-idm382810652080">
      <firstname>Sylvie</firstname>
      <lastname>Embolla</lastname>
      <affiliation>INRIA</affiliation>
      <categoryPro>Assistant</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Group Assistant, from September 4, 2006</moreinfo>
    </person>
    <person key="obasco-2006-idm179782147760">
      <firstname>Julia</firstname>
      <lastname>Lawall</lastname>
      <affiliation>UnivEtrangere</affiliation>
      <categoryPro>CollaborateurExterieur</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Associate Professor, University of Copenhagen (DIKU)</moreinfo>
    </person>
    <person key="phoenix-2006-idm382810664048">
      <firstname>Julien</firstname>
      <lastname>Mercadal</lastname>
      <affiliation>UnivFr</affiliation>
      <categoryPro>PhD</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Ministerial scholarship, from October 1, 2006 to January 31, 2011, University of Bordeaux and Research Assistant from April 1, 2011 to September 30, 2011, Inria</moreinfo>
    </person>
    <person key="phoenix-2007-idm524142903968">
      <firstname>Damien</firstname>
      <lastname>Cassou</lastname>
      <affiliation>UnivFr</affiliation>
      <categoryPro>PhD</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Ministerial scholarship, from October 1, 2007 to September 30, 2010, University of Bordeaux and Research Assistant, from October 1, 2010 to March 31, 2011, Inria</moreinfo>
    </person>
    <person key="phoenix-2008-idm150882412384">
      <firstname>Henner</firstname>
      <lastname>Jakob</lastname>
      <affiliation>INRIA</affiliation>
      <categoryPro>PhD</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Inria scholarship, from May 1, 2008 to June 30, 2011</moreinfo>
    </person>
    <person key="phoenix-2007-idm524142890416">
      <firstname>Julien</firstname>
      <lastname>Bruneau</lastname>
      <affiliation>EtablissementPrive</affiliation>
      <categoryPro>PhD</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Thales scholarship, from October 1, 2008 to September 30, 2011 and Research Assistant from October 1, 2011, Inria</moreinfo>
    </person>
    <person key="phoenix-2009-idm2957707104">
      <firstname>Hongyu</firstname>
      <lastname>Guan</lastname>
      <affiliation>UnivFr</affiliation>
      <categoryPro>PhD</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Region scholarship, from February 9, 2009</moreinfo>
    </person>
    <person key="phoenix-2009-idm2957704048">
      <firstname>Pengfei</firstname>
      <lastname>Liu</lastname>
      <affiliation>INRIA</affiliation>
      <categoryPro>PhD</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Inria scholarship, from October 1, 2009</moreinfo>
    </person>
    <person key="phoenix-2009-idm2957701008">
      <firstname>Stéphanie</firstname>
      <lastname>Gatti</lastname>
      <affiliation>EtablissementPrive</affiliation>
      <categoryPro>PhD</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Thales scholarship, from February 1, 2010</moreinfo>
    </person>
    <person key="phoenix-2009-idm2957697904">
      <firstname>Quentin</firstname>
      <lastname>Enard</lastname>
      <affiliation>EtablissementPrive</affiliation>
      <categoryPro>PhD</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Thales scholarship, from February 1, 2010</moreinfo>
    </person>
    <person key="phoenix-2011-idm528864693696">
      <firstname>Luc</firstname>
      <lastname>Vercellin</lastname>
      <affiliation>INRIA</affiliation>
      <categoryPro>PhD</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Inria scholarship, from October 1, 2011</moreinfo>
    </person>
    <person key="phoenix-2009-idm2957688672">
      <firstname>Ghislain</firstname>
      <lastname>Deffrasnes</lastname>
      <affiliation>INRIA</affiliation>
      <categoryPro>Technique</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Associate Engineer, from October 1, 2009 to September 11, 2011</moreinfo>
    </person>
    <person key="phoenix-2007-idm524142897184">
      <firstname>Benjamin</firstname>
      <lastname>Bertran</lastname>
      <affiliation>INRIA</affiliation>
      <categoryPro>Technique</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Associate Engineer, from December 17, 2007 to December 18, 2011</moreinfo>
    </person>
    <person key="phoenix-2011-idm528864684448">
      <firstname>Amélie</firstname>
      <lastname>Marzin</lastname>
      <affiliation>INRIA</affiliation>
      <categoryPro>Technique</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Associate Engineer, from October 3, 2011</moreinfo>
    </person>
    <person key="ascola-2011-idm487223666240">
      <firstname>Christine</firstname>
      <lastname>Louberry</lastname>
      <affiliation>INRIA</affiliation>
      <categoryPro>PostDoc</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Post-Doctoral Fellow, from September 1, 2011</moreinfo>
    </person>
    <person key="phoenix-2011-idm528863698768">
      <firstname>Young-Joo</firstname>
      <lastname>Moon</lastname>
      <affiliation>INRIA</affiliation>
      <categoryPro>PostDoc</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Post-Doctoral Fellow, from November 2, 2011</moreinfo>
    </person>
  </team>
  <presentation id="uid2">
    <bodyTitle>Overall Objectives</bodyTitle>
    <subsection id="uid3" level="1">
      <bodyTitle>Overall Objectives</bodyTitle>
      <p>A host of networked devices are populating smart spaces that become prevalent in an increasing number of areas, including supply chain management (e.g., parcel tracking), monitoring (e.g.,
      building surveillance and patient monitoring) and home and building automation (e.g., control of energy consumption). This situation raises a number of challenges (1) safety and security
      because of the interweaving of these smart spaces in our daily life, (2) productivity because of a high demand of applications matching the wide range of user needs, and (3) abstraction because
      of the heterogeneity of the devices.</p>
      <p>To address these challenges, we develop a software engineering approach that is dedicated to services orchestrating networked devices:</p>
      <simplelist>
        <li id="uid4">
          <p noindent="true">the specification of robust orchestrating services based on innovative Domain-Specific Languages (DSLs),</p>
        </li>
        <li id="uid5">
          <p noindent="true">the study of the communication layers underlying these services to improve flexibility and performance,</p>
        </li>
        <li id="uid6">
          <p noindent="true">the application to concrete areas such as pervasive computing or avionics to validate our approach.</p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid7" level="1">
      <bodyTitle>Highlights</bodyTitle>
      <simplelist>
        <li id="uid8">
          <p noindent="true">Launching of a research activity on digital cognitive assistance (two associate members in cognitive science, starting of a PhD thesis and an ADT, national and
          international collaborations)</p>
        </li>
        <li id="uid9">
          <p noindent="true">Technology transfer action for DiaSuiteBox (CSATT support, demonstrations and showcases, starting of partnerships)</p>
        </li>
        <li id="uid10">
          <p noindent="true">Three PhDs defended in 2011 (Damien Cassou, Henner Jakob and Julien Mercadal)</p>
        </li>
        <li id="uid11">
          <p noindent="true">Organization of the International IFIP Working Conference on Domain-Specific Languages (DSL 2011) and the meeting of the Working Group IFIP 2.11 in Bordeaux</p>
        </li>
      </simplelist>
    </subsection>
  </presentation>
  <fondements id="uid12">
    <bodyTitle>Scientific Foundations</bodyTitle>
    <subsection id="uid13" level="1">
      <bodyTitle>Introduction</bodyTitle>
      <p>Our proposed project builds upon results previously obtained by the Compose research group whose aim was to study new approaches to developing adaptable software components in the domain of
      systems and networking. In this section, we review the accomplishments of Compose, only considering the ones achieved by the current project members, to demonstrate our expertise in the key
      areas underlying our project, namely:</p>
      <simplelist>
        <li id="uid14">
          <p noindent="true">Programming language technology: language design and implementation, domain-specific languages, program analysis and program transformation.</p>
        </li>
        <li id="uid15">
          <p noindent="true">Operating Systems and Networking: design, implementation and optimization.</p>
        </li>
        <li id="uid16">
          <p noindent="true">Software engineering: software architecture, methodologies, techniques and tools.</p>
        </li>
      </simplelist>
      <p>By combining expertise in these areas, the research work of the Compose group contributed to demonstrating the usefulness of adaptation methodologies, such as domain-specific languages, and
      the effectiveness of adaptation tools, such as program specializers. Our work aimed to show how adaptation methodologies and tools could be integrated into the development process of real-size
      software components. This contribution relied on advances in methodologies to develop adaptable programs, and techniques and tools to adapt these programs to specific usage contexts.</p>
    </subsection>
    <subsection id="uid17" level="1">
      <bodyTitle>Adaptation Methodologies</bodyTitle>
      <p>Although industry has long recognized the need to develop adaptable programs, methodologies to develop them are still at the research stage. We have presented preliminary results in this
      area with a detailed study of the applicability of program specialization to various software architectures  
      <ref xlink:href="#phoenix-2011-bid0" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. Our latest contributions in this area span from a revolutionary
      approach based on the definition of programming languages, dedicated to a specific problem family, to a direct exploitation of specialization opportunities generated by a conventional
      programming methodology.</p>
      <subsection id="idp140278983669216" level="2">
        <bodyTitle>Domain-Specific languages</bodyTitle>
        <p>DSLs represent a promising approach to modeling a problem family. Yet, this approach currently suffers from the lack of methodology to design and implement DSLs. To address this basic
        need, we have introduced the Sprint methodology for DSL development  
        <ref xlink:href="#phoenix-2011-bid1" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. This methodology bridges the gap between semantics-based
        approaches to developing general-purpose languages and software engineering. Sprint is a complete software development process starting from the identification of the need for a DSL to its
        efficient implementation. It uses the denotational framework to formalize the basic components of a DSL. The semantic definition is structured so as to stage design decisions and to smoothly
        integrate implementation concerns.</p>
      </subsection>
      <subsection id="idp140278983672640" level="2">
        <bodyTitle>Declaring adaptation</bodyTitle>
        <p>A less drastic strategy to developing efficient adaptable programs consists of making specific issues of adaptation explicit via a declarative approach. To do so, we enrich Java classes
        with declarations, named 
        <i>adaptation classes</i>, aimed to express adaptive behaviors  
        <ref xlink:href="#phoenix-2011-bid2" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. As such, this approach allows the programmer to separate the
        concerns between the basic features of the application and its adaptation aspects. A dedicated compiler automatically generates Java code that implements the adaptive features.</p>
      </subsection>
      <subsection id="idp140278983675984" level="2">
        <bodyTitle>Declaring specialization</bodyTitle>
        <p>When developing components, programmers often hesitate to make them highly generic and configurable. Indeed, genericity and configurability systematically introduce overheads in the
        resulting component. However, the causes of these overheads are usually well-known by the programmers and their removal could often be automated, if only they could be declared to guide an
        optimizing tool. The Compose group has worked towards solving this problem.</p>
        <p>We introduced a declaration language which enables a component developer to express the configurability of a component. The declarations consist of a collection of specialization scenarios
        that precisely identify what program constructs are of interest for specialization. The scenarios of a component do not clutter the component code; they are defined aside in a 
        <i>specialization module</i>  
        <ref xlink:href="#phoenix-2011-bid3" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, 
        <ref xlink:href="#phoenix-2011-bid4" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, 
        <ref xlink:href="#phoenix-2011-bid5" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, 
        <ref xlink:href="#phoenix-2011-bid6" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
        <p>This work was done in the context of C and declarations were intended to drive our C specializer.</p>
      </subsection>
      <subsection id="idp140278983684592" level="2">
        <bodyTitle>Specializing design patterns</bodyTitle>
        <p>A natural approach to systematically applying program specialization is to exploit opportunities offered by a programming methodology. We have studied a development methodology for
        object-oriented languages, called design patterns. Design patterns encapsulate knowledge about the design and implementation of highly adaptable software. However, adaptability is obtained at
        the expense of overheads introduced in the finished program. These overheads can be identified for each design pattern. Our work consisted in using knowledge derived from design patterns to
        eliminate these overheads in a systematic way. To do so, we analyzed the specialization opportunities provided by specific uses of design patterns, and determined how to eliminate these
        overheads using program specialization. These opportunities were documented in declarations, called specialization patterns, and were associated with specific design patterns  
        <ref xlink:href="#phoenix-2011-bid7" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. The specialization of a program composed of design patterns was
        then driven by the corresponding declarations. This work was presented in the context of Java and uses our Java specializer  
        <ref xlink:href="#phoenix-2011-bid8" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
      </subsection>
      <subsection id="idp140278983688864" level="2">
        <bodyTitle>Specializing software architectures</bodyTitle>
        <p>The sources of inefficiency in software architectures can be identified in the data and control integration of components, because flexibility is present not only at the design level but
        also in the implementation. We proposed the use of program specialization in software engineering as a systematic way to improve performance and, in some cases, to reduce program size. We
        studied several representative, flexible mechanisms found in software architectures: selective broadcast, pattern matching, interpreters, layers and generic libraries. We showed how program
        specialization can be applied systematically to optimize these mechanisms  
        <ref xlink:href="#phoenix-2011-bid9" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, 
        <ref xlink:href="#phoenix-2011-bid0" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
      </subsection>
    </subsection>
    <subsection id="uid18" level="1">
      <bodyTitle>Adaptation in Systems Software</bodyTitle>
      <subsection id="idp140278983693312" level="2">
        <bodyTitle>DSLs in Operating Systems</bodyTitle>
        <p>Integrating our adaptation methodologies and tools into the development process of real-size software systems was achieved by proposing a new development process. Specifically, we proposed
        a new approach to designing and structuring operating systems (OSes)  
        <ref xlink:href="#phoenix-2011-bid10" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. This approach was based on DSLs and enables rapid development of
        robust OSes. Such an approach is critically needed in application domains, like appliances, where new products appear at a rapid pace and needs are unpredictable.</p>
      </subsection>
      <subsection id="idp140278983696528" level="2">
        <bodyTitle>Devil - a DSL for device drivers</bodyTitle>
        <p>Our approach to developing systems software applied to the domain of device drivers. Indeed, peripheral devices come out at a frantic pace, and the development of drivers is very intricate
        and error prone. The Compose group developed a DSL, named Devil (DEvice Interface Language), to solve these problems; it was dedicated to the basic communication with a device. Devil allowed
        the programmer to easily map device documentation into a formal device description that can be verified and compiled into executable code.</p>
        <p>From a software engineering viewpoint, Devil captures domain expertise and systematizes re-use because it offers suitable built-in abstractions  
        <ref xlink:href="#phoenix-2011-bid11" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. A Devil description formally specifies the access mechanisms,
        the type and layout of data, as well as behavioral properties involved in operating the device. Once compiled, a Devil description implements an interface to an idealized device and abstracts
        the hardware intricacies.</p>
        <p>From an operating systems viewpoint, Devil can be seen as an 
        <i>interface definition language</i>for hardware functionalities. To validate the approach, Devil was put to practice  
        <ref xlink:href="#phoenix-2011-bid12" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>: its expressiveness was demonstrated by the wide variety of
        devices that have been specified in Devil. No loss in performance was found for the compiled Devil description compared to an equivalent C code.</p>
        <p>From a dependable system viewpoint, Devil improves safety by enabling descriptions to be statically checked for consistency and generating stubs including additional run-time checks  
        <ref xlink:href="#phoenix-2011-bid13" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. Mutation analysis was used to evaluate the improvement in driver
        robustness offered by Devil. Based on our experiments, Devil specifications were found up to 6 times less prone to errors than writing C code.</p>
        <p>Devil was the continuation of a study of graphic display adaptors for a X11 server. We developed a DSL, called GAL (Graphics Adaptor Language), aimed to specify device drivers in this
        context  
        <ref xlink:href="#phoenix-2011-bid14" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. Although covering a very restricted domain, this language was a
        very successful proof of concept.</p>
      </subsection>
    </subsection>
    <subsection id="uid19" level="1">
      <bodyTitle>Adaptation Tools and Techniques</bodyTitle>
      <p>To further the applicability of our approach, we have strengthened and extended adaptation tools and techniques. We have produced a detailed description of the key program analysis for
      imperative specialization, namely binding-time analysis  
      <ref xlink:href="#phoenix-2011-bid15" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. This analysis is at the heart of our program specializer for C,
      named Tempo  
      <ref xlink:href="#phoenix-2011-bid15" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. We have examined the importance of the accuracy of these analyses
      to successfully specialize existing programs. This study was conducted in the context of systems software  
      <ref xlink:href="#phoenix-2011-bid16" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
      <p>Tempo is the only specializer which enables programs to be specialized both at compile time and run time. Yet, specialization is always performed in one stage. As a consequence, this process
      cannot be factorized even if specialization values become available at multiple stages. We present a realistic and flexible approach to achieving efficient incremental run-time
      specialization  
      <ref xlink:href="#phoenix-2011-bid17" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. Rather than developing new techniques, our strategy for
      incremental run-time specialization reuses existing technology by iterating a specialization process. Our approach has been implemented in Tempo.</p>
      <p>While program specialization encodes the result of early computations into a new program, 
      <i>data specialization</i>encodes the result of early computations into data structures. Although aiming at the same goal, namely processing early computations, these two forms of
      specialization have always been studied separately. The Compose group has proposed an extension of Tempo to perform both program and data specialization  
      <ref xlink:href="#phoenix-2011-bid18" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. We showed how these two strategies can be integrated in a single
      specializer. Most notably, having both strategies enabled us to assess their benefits, limitations and their combination on a variety of programs.</p>
      <p>Interpreters and run-time compilers are increasingly used to cope with heterogeneous architectures, evolving programming languages, and dynamically loaded code. Although solving the same
      problem, these two strategies are very different. Interpreters are simple to implement but yield poor performance. Run-time compilation yields better performance, but is costly to implement.
      One approach to reconciling these two strategies is to develop interpreters for simplicity but to use specialization to achieve efficiency. Additionally, a specializer like Tempo can remove the
      interpretation overhead at compile time as well as at run time. We have conducted experiments to assess the benefits of applying specialization to interpreters  
      <ref xlink:href="#phoenix-2011-bid19" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. These experiments have involved Bytecode and structured-language
      interpreters. Our experimental data showed that specialization of structured-language interpreters can yield performance comparable to that of the compiled code of an optimizing compiler.</p>
      <p>Besides targeting C, we developed the first program specializer for an object-oriented language. This specializer, named JSpec, processes Java programs  
      <ref xlink:href="#phoenix-2011-bid8" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. JSpec is constructed from existing tools. Java programs are
      translated into C using our Java compiler, named Harissa. Then, the resulting C programs are specialized using Tempo. The specialized C program is executed in the Harissa environment. JSpec has
      been used for various applications and has shown to produce significant speedups  
      <ref xlink:href="#phoenix-2011-bid20" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
    </subsection>
  </fondements>
  <domaine id="uid20">
    <bodyTitle>Application Domains</bodyTitle>
    <subsection id="uid21" level="1">
      <bodyTitle>Introduction</bodyTitle>
      <p>After having explored DSLs in isolated domains in the past, we now generalize this experience to attack a larger domain, namely, communication services. Generalizing our work on telephony,
      we investigated the coordination of 
      <i>networked entities</i>, whether or not operated by users. The three main application domains are pervasive computing, avionics and assisted living.</p>
    </subsection>
    <subsection id="uid22" level="1">
      <bodyTitle>Pervasive Computing</bodyTitle>
      <p>Pervasive computing systems are being deployed in a rapidly increasing number of areas, including building automation and supply chain management. Regardless of their target area, pervasive
      computing systems have a typical architectural pattern. They aggregate data from a variety of distributed sources, whether sensing devices or software components, analyze a context to make
      decisions, and carry out decisions by invoking a range of actuators. Because pervasive computing systems are standing at the crossroads of several domains (
      <i>e.g.,</i>distributed systems, multimedia, and embedded systems), they raise a number of challenges in software development:</p>
      <simplelist>
        <li id="uid23">
          <p noindent="true"><i>Heterogeneity.</i>Pervasive computing systems are made of off-the-shelf entities, that is, hardware and software building blocks. These entities run on specific platforms, feature
          various interaction models, and provide non-standard interfaces. This heterogeneity tends to percolate in the application code, preventing its portability and reusability, and cluttering it
          with low-level details.</p>
        </li>
        <li id="uid24">
          <p noindent="true"><i>Lack of structuring.</i>Pervasive computing systems coordinate numerous, interrelated components. A lack of global structuring makes the development and evolution of such systems
          error-prone: component interactions may be invalid or missing.</p>
        </li>
        <li id="uid25">
          <p noindent="true"><i>Combination of technologies.</i>Pervasive computing systems involve a variety of technological issues, including device intricacies, complex APIs of distributed systems technologies and
          middleware-specific features. Coping with this range of issues results in code bloated with special cases to glue technologies together.</p>
        </li>
        <li id="uid26">
          <p noindent="true"><i>Dynamicity.</i>In a pervasive computing system, devices may either become available as they get deployed, or unavailable due to malfunction or network failure. Dealing with these issues
          explicitly in the implementation can quickly make the code cumbersome.</p>
        </li>
        <li id="uid27">
          <p noindent="true"><i>Testing.</i>Pervasive computing systems are complicated to test. Doing so requires equipments to be acquired, tested, configured and deployed. Furthermore, some scenarios cannot be
          tested because of the nature of the situations involved (
          <i>e.g.,</i>fire and smoke). As a result, the programmer must resort to writing specific code to achieve ad hoc testing.</p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid28" level="1">
      <bodyTitle>Avionics</bodyTitle>
      <p>In avionics, an aircraft can be seen as an environment full of sensors (
      <i>e.g.,</i>accelerometers, gyroscopes, and GPS sensors) and actuators (
      <i>e.g.,</i>ailerons and elevator trim). For example, a flight guidance system controls the aircraft using data produced by sensors. In a critical platform such as an aircraft, software systems
      have to be certified. Moreover the safety-critical nature of the avionics domain takes the form of stringent non-functional requirements, resulting in a number of challenges in software
      development:</p>
      <simplelist>
        <li id="uid29">
          <p noindent="true"><i>Traceability.</i>Traceability is the ability to trace all the requirements throughout the development process. In the avionics certification processes, traceability is mandatory for both
          functional and non-functional requirements.</p>
        </li>
        <li id="uid30">
          <p noindent="true"><i>Coherence.</i>Functional and non-functional aspects of an application are inherently coupled. For example, dependability mechanisms can potentially deteriorate the overall performance of
          the application. The coherence of the requirements is particularly critical when the software evolves: even minor modifications to one aspect may tremendously impact the others, leading to
          unpredicted failures.</p>
        </li>
        <li id="uid31">
          <p noindent="true"><i>Separation of concerns.</i>Avionics platforms involve the collaboration of several experts (from low-level system to software, safety, QoS), making requirements traceability
          significantly more challenging. Providing development methodologies that allow a clear separation of concerns can tremendously improve traceability.</p>
        </li>
      </simplelist>
      <p>Our approach consists of enriching a design language with non-functional decalarations. Such declarations allow the safety expert to specify at design time how errors are handled, guiding
      and facilitating the implementation of error handling code. The design is also enriched with Quality of Service (QoS) declarations such as time constraints. For each of these non-functional
      declarations, specific development support can be generated. We have validated this approach by developing flight guidance applications for avionics and drone systems.</p>
    </subsection>
    <subsection id="uid32" level="1">
      <bodyTitle>Assisted Living</bodyTitle>
      <p>Cognitive impairments (memory, attention, time and space orientation, 
      <i>etc</i>) affect a large part of the population, including elderly, patients with brain injuries (traumatic brain injury, stroke, 
      <i>etc</i>), and people suffering from cognitive disabilities, such as Down syndrome.</p>
      <p>The emerging industry of digital assistive technologies provide hardware devices dedicated to specific tasks, such as a telephone set with a keyboard picturing relatives (
      <ref xlink:href="http://www.doro.fr" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
      <allowbreak/>www.
      <allowbreak/>doro.
      <allowbreak/>fr</ref>), or a device for audio and video communication over the web (
      <ref xlink:href="http://www.technosens.fr" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
      <allowbreak/>www.
      <allowbreak/>technosens.
      <allowbreak/>fr</ref>). These assistive technologies apply a traditional approach to personal assistance by providing an equipment dedicated to a single task (or a limited set of tasks),
      without leveraging surrounding devices. This traditional approach has fundamental limitations that must be overcome to significantly improve assistive technologies:</p>
      <simplelist>
        <li id="uid33">
          <p noindent="true">they are 
          <i>not adaptable to one's needs</i>. They are generally dedicated to a task and have very limited functionalities: no networking, limited computing capabilities, a limited screen and
          rudimentary interaction modalities. This lack of functionality may cause a proliferation of devices, complicating the end-user life. Moreover, they are rarely designed to adapt to the
          cognitive changes of the user. When the requirements evolve, the person must acquire a new device.</p>
        </li>
        <li id="uid34">
          <p noindent="true">they are often 
          <i>proprietary</i>, limiting innovation. As a result, they cannot cope with the evolution of users' needs.</p>
        </li>
        <li id="uid35">
          <p noindent="true">they have limited or 
          <i>no interoperability</i>. As a result, they cannot rely on other devices and software services to offer richer applications.</p>
        </li>
      </simplelist>
      <p>To break this model, we propose to offer an assistive solution that is open-ended in terms of applications and entities. (1) An on-line catalog of available applications enables every user
      and caregiver to define personalized assistance in the form of an evolving and adapted set of applications; this catalog provides a community of developers with a mechanism to publish
      applications for specific daily-activity needs. (2) New types of entities can be added to a platform description to enhance its functionalities and extend the scope of future applications.</p>
    </subsection>
  </domaine>
  <logiciels id="uid36">
    <bodyTitle>Software</bodyTitle>
    <subsection id="uid37" level="1">
      <bodyTitle><ref xlink:href="http://diasuite.inria.fr" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">DiaSuite</ref>: a Development Environment for
      Sense/Compute/Control Applications</bodyTitle>
      <participants>
        <person key="phoenix-2006-idm382810690416">
          <firstname>Charles</firstname>
          <lastname>Consel</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
        <person key="phoenix-2007-idm524142897184">
          <firstname>Benjamin</firstname>
          <lastname>Bertran</lastname>
        </person>
        <person key="phoenix-2009-idm2957688672">
          <firstname>Ghislain</firstname>
          <lastname>Deffrasnes</lastname>
        </person>
        <person key="phoenix-2011-idm528864684448">
          <firstname>Amélie</firstname>
          <lastname>Marzin</lastname>
        </person>
        <person key="phoenix-2007-idm524142903968">
          <firstname>Damien</firstname>
          <lastname>Cassou</lastname>
        </person>
        <person key="phoenix-2007-idm524142890416">
          <firstname>Julien</firstname>
          <lastname>Bruneau</lastname>
        </person>
        <person key="protheo-2006-idm196801648560">
          <firstname>Emilie</firstname>
          <lastname>Balland</lastname>
        </person>
      </participants>
      <p>Despite much progress, developing a pervasive computing application remains a challenge because of a lack of conceptual frameworks and supporting tools. This challenge involves coping with
      heterogeneous devices, overcoming the intricacies of distributed systems technologies, working out an architecture for the application, encoding it in a program, writing specific code to test
      the application, and finally deploying it.</p>
      <p><span class="smallcap" align="left">DiaSuite</span>is a suite of tools covering the development life-cycle of a pervasive computing application:</p>
      <simplelist>
        <li id="uid38">
          <p noindent="true"><i>Defining an application area.</i>First, an expert defines a catalog of entities, whether hardware or software, that are specific to a target area. These entities serve as building blocks
          to develop applications in this area. They are gathered in a taxonomy definition, written in the taxonomy layer of the 
          <span class="smallcap" align="left">DiaSpec</span>language.</p>
        </li>
        <li id="uid39">
          <p noindent="true"><i>Designing an application.</i>Given a taxonomy, the architect can design and structure applications. To do so, the 
          <span class="smallcap" align="left">DiaSpec</span>language provides an application design layer  
          <ref xlink:href="#phoenix-2011-bid21" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. This layer is dedicated to an architectural pattern commonly
          used in the pervasive computing domain  
          <ref xlink:href="#phoenix-2011-bid22" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. Describing the architecture application allows to further
          model a pervasive computing system, making explicit its functional decomposition.</p>
        </li>
        <li id="uid40">
          <p noindent="true"><i>Implementing an application.</i>We leverage the taxonomy definition and the architecture description to provide dedicated support to both the entity and the application developers. This
          support takes the form of a Java programming framework, generated by the 
          <span class="smallcap" align="left">DiaGen</span>compiler. The generated programming framework precisely guides the developer with respect to the taxonomy definition and the architecture
          description. It consists of high-level operations to discover entities and interact with both entities and application components. In doing so, it abstracts away from the underlying
          distributed technologies, providing further separation of concerns.</p>
        </li>
        <li id="uid41">
          <p noindent="true"><i>Testing an application.</i><span class="smallcap" align="left">DiaGen</span>generates a simulation support to test pervasive computing applications before their actual deployment. An application is simulated in the 
          <span class="smallcap" align="left">DiaSim</span>tool, without requiring any code modification. 
          <span class="smallcap" align="left">DiaSim</span>provides an editor to define simulation scenarios and a 2D-renderer to monitor the simulated application. Furthermore, simulated and actual
          entities can be mixed. This hybrid simulation enables an application to migrate incrementally to an actual environment.</p>
        </li>
        <li id="uid42">
          <p noindent="true"><i>Deploying a system.</i>Finally, the system administrator deploys the pervasive computing system. To this end, a distributed systems technology is selected. We have developed a back-end
          that currently targets the following technologies: Web Services, RMI, SIP and OSGI. This targeting is transparent for the application code. The variety of these target technologies
          demonstrates that our development approach separates concerns into well-defined layers.</p>
        </li>
      </simplelist>
      <p>This development cycle is summarized in the Figure 
      <ref xlink:href="#uid43" location="intern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
      <object id="uid43">
        <table>
          <tr>
            <td>
              <ressource xlink:href="IMG/DevCycle.jpg" type="float" scale="0.7" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" media="WEB"/>
            </td>
          </tr>
        </table>
        <caption><span class="smallcap" align="left">DiaSuite</span>Development Cycle</caption>
      </object>
      <p>See also the web page 
      <ref xlink:href="http://diasuite.inria.fr" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
      <allowbreak/>diasuite.
      <allowbreak/>inria.
      <allowbreak/>fr</ref>.</p>
      <subsection id="idp140278983814832" level="2">
        <bodyTitle><span class="smallcap" align="left">DiaSpec</span>: a Domain-Specific Language for Networked Entities</bodyTitle>
        <p>The core of the 
        <span class="smallcap" align="left">DiaSuite</span>development environment is the domain specific language called 
        <span class="smallcap" align="left">DiaSpec</span>and its compiler 
        <span class="smallcap" align="left">DiaGen</span>:</p>
        <simplelist>
          <li id="uid44">
            <p noindent="true"><span class="smallcap" align="left">DiaSpec</span>is composed of two layers:</p>
            <simplelist>
              <li id="uid45">
                <p noindent="true">The 
                <i>Taxonomy Layer</i>allows the declaration of entities that are relevant to the target application area. An entity consists of sensing capabilities, producing data, and actuating
                capabilities, providing actions. Accordingly, an entity description declares a data source for each one of its sensing capabilities. As well, an actuating capability corresponds to a
                set of method declarations. An entity declaration also includes attributes, characterizing properties of entity instances. Entity declarations are organized hierarchically allowing
                entity classes to inherit attributes, sources and actions. A taxonomy allows separation of concerns in that the expert can focus on the concerns of cataloging area-specific entities.
                The entity developer is concerned about mapping a taxonomical description into an actual entity, and the application developer concentrates on the application logic.</p>
              </li>
              <li id="uid46">
                <p noindent="true">The 
                <i>Architecture Layer</i>is based on an architectural pattern commonly used in the pervasive computing domain  
                <ref xlink:href="#phoenix-2011-bid22" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. It consists of context components fueled by sensing
                entities. These components process gathered data to make them amenable to the application needs. Context data are then passed to controller components that trigger actions on
                entities. Using an architecture description enables the key components of an application to be identified, allowing their implementation to evolve with the requirements (
                <i>e.g.,</i>varying light management implementations in a controller component to optimize energy consumption).</p>
              </li>
            </simplelist>
          </li>
          <li id="uid47">
            <p noindent="true"><span class="smallcap" align="left">DiaGen</span>is the 
            <span class="smallcap" align="left">DiaSpec</span>compiler that performs both static and runtime verifications over 
            <span class="smallcap" align="left">DiaSpec</span>declarations and produces a dedicated programming framework that guides and eases the implementation of components. The generated
            framework is independent of the underlying distributed technology. As of today, 
            <span class="smallcap" align="left">DiaGen</span>supports multiple targets: Local, RMI, SIP, Web Services and OSGI.</p>
          </li>
        </simplelist>
      </subsection>
      <subsection id="idp140278983832480" level="2">
        <bodyTitle><span class="smallcap" align="left">DiaSim</span>: a Parametrized Simulator for Pervasive Computing Applications</bodyTitle>
        <object id="uid48">
          <table>
            <tr>
              <td>
                <ressource xlink:href="IMG/Diasim.jpg" type="float" width="298.8987pt" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" media="WEB"/>
              </td>
            </tr>
          </table>
          <caption>A screenshot of the 
          <span class="smallcap" align="left">DiaSim</span>simulator</caption>
        </object>
        <p>Pervasive computing applications involve both software and integration concerns. This situation is problematic for testing pervasive computing applications because it requires acquiring,
        testing and interfacing a variety of software and hardware entities. This process can rapidly become costly and time-consuming when the target environment involves many entities.</p>
        <p>To ease the testing of pervasive applications, we are developing a simulator for pervasive computing applications: 
        <span class="smallcap" align="left">DiaSim</span>. To cope with widely heterogeneous entities, 
        <span class="smallcap" align="left">DiaSim</span>is parameterized with respect to a 
        <span class="smallcap" align="left">DiaSpec</span>specification describing a target pervasive computing environment. This description is used to generate with 
        <span class="smallcap" align="left">DiaGen</span>both a programming framework to develop the simulation logic and an emulation layer to execute applications. Furthermore, a simulation
        renderer is coupled to 
        <span class="smallcap" align="left">DiaSim</span>to allow a simulated pervasive system to be visually monitored and debugged. The simulation renderer is illustrated in Figure 
        <ref xlink:href="#uid48" location="intern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
      </subsection>
    </subsection>
    <subsection id="uid49" level="1">
      <bodyTitle><ref xlink:href="http://diabox.inria.fr" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">DiaSuiteBox</ref>: an Open Service Platform</bodyTitle>
      <participants>
        <person key="phoenix-2007-idm524142897184">
          <firstname>Benjamin</firstname>
          <lastname>Bertran</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
        <person key="phoenix-2007-idm524142890416">
          <firstname>Julien</firstname>
          <lastname>Bruneau</lastname>
        </person>
        <person key="phoenix-2006-idm382810690416">
          <firstname>Charles</firstname>
          <lastname>Consel</lastname>
        </person>
        <person key="protheo-2006-idm196801648560">
          <firstname>Emilie</firstname>
          <lastname>Balland</lastname>
        </person>
      </participants>
      <p>The DiaSuiteBox platform runs an open-ended set of applications leveraging a range of appliances and web services. Our solution consists of a dedicated development environment, a certifying
      application store, and a lightweight runtime platform. This solution is based on the 
      <span class="smallcap" align="left">DiaSuite</span>project.</p>
      <object id="uid50">
        <table>
          <tr>
            <td>
              <ressource xlink:href="IMG/diabox.jpg" type="float" width="256.2026pt" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" media="WEB"/>
            </td>
          </tr>
        </table>
        <caption>DiaSuiteBox platform architecture</caption>
      </object>
      <p>The DiaSuiteBox platform can be embedded in a small plug-computer. This box can be easily deployed, runs silently, and has a reduced energy consumption. Thanks to the application store and
      the developer community, the platform is fed by a full offer of new innovative applications. During the submission process, an application is automatically analyzed and checked in order to be
      certified. The user is ensured of the behavior of its applications are innocuous and correct beside the provided information. This box relies on several technology standards like UPnP,
      Bluetooth, USB, etc. As shown in Figure 
      <ref xlink:href="#uid50" location="intern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, this platform can be easily extended by plugging appliances directly on the box
      or by connecting devices on the local network.</p>
      <p>See also the web page 
      <ref xlink:href="http://diabox.inria.fr" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
      <allowbreak/>diabox.
      <allowbreak/>inria.
      <allowbreak/>fr</ref>.</p>
    </subsection>
    <subsection id="uid51" level="1">
      <bodyTitle><ref xlink:href="http://phoenix.inria.fr/software/pantagruel" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">Pantagruel</ref>: a Visual Domain-Specific
      Language for Ubiquitous Computing</bodyTitle>
      <participants>
        <person key="phoenix-2009-idm2957688672">
          <firstname>Ghislain</firstname>
          <lastname>Deffrasnes</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
        <person key="phoenix-2006-idm382810664048">
          <firstname>Julien</firstname>
          <lastname>Mercadal</lastname>
        </person>
        <person key="phoenix-2006-idm382810690416">
          <firstname>Charles</firstname>
          <lastname>Consel</lastname>
        </person>
      </participants>
      <object id="uid52">
        <table>
          <tr>
            <td>
              <ressource xlink:href="IMG/Pantagruel.jpg" type="float" width="298.8987pt" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" media="WEB"/>
            </td>
          </tr>
        </table>
        <caption>A screenshot of the Pantagruel graphical editor</caption>
      </object>
      <p>Pantagruel aims at easing the description of an orchestration logic between networked entities of a pervasive environment. First, the developer defines a taxonomy of entities that compose
      the environment, This step provides an abstraction of the entities capabilities and functionalities. Second, the developer defines the orchestration logic in terms of rules. To facilitate its
      programming, we provide a visual domain-specific language based on the sensor-controller-actuator paradigm. An example of a visual orchestration is given in Figure 
      <ref xlink:href="#uid52" location="intern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>where a shower automatically runs at the right temperature when someone enters
      the bathroom and closes the door.</p>
      <p>Pantagruel brings a high-level layer intended to complement existing tools in the activity of safe orchestration logic description, allowing novice-programmers to prototype pervasive
      applications. The Pantragruel compiler generates code compliant with the 
      <span class="smallcap" align="left">DiaSuite</span>toolset. Pantagruel is being completed by tools aimed at verifying safety properties like termination and reachability.</p>
      <p>See also the web page 
      <ref xlink:href="http://phoenix.inria.fr/software/pantagruel" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
      <allowbreak/>phoenix.
      <allowbreak/>inria.
      <allowbreak/>fr/
      <allowbreak/>software/
      <allowbreak/>pantagruel</ref>.</p>
    </subsection>
  </logiciels>
  <resultats id="uid53">
    <bodyTitle>New Results</bodyTitle>
    <subsection id="uid54" level="1">
      <bodyTitle>Leveraging Software Architectures to Guide and Verify the Development of Sense/Compute/Control Applications</bodyTitle>
      <p>A software architecture describes the structure of a computing system by specifying software components and their interactions. Mapping a software architecture to an implementation is a well
      known challenge. A key element of this mapping is the architecture's description of the data and control-flow interactions between components. The characterization of these interactions can be
      rather abstract or very concrete, providing more or less implementation guidance, programming support, and static verification.</p>
      <p>In this work, we have introduced a notion of 
      <i>behavioral contract</i>that expresses the set of allowed interactions between components, describing both data and control-flow constraints 
      <ref xlink:href="#phoenix-2011-bid23" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. This declaration is part of the architecture description, allows
      generation of extensive programming support, and enables various verifications. We have instantiated our approach in an architecture description language for the domain of Sense/Compute/Control
      (SCC) applications, and described associated compilation and verification strategies.</p>
      <p>The main contributions of this work are the following:</p>
      <simplelist>
        <li id="uid55">
          <p noindent="true">We have introduced a language for behavioral contracts dedicated to SCC applications.</p>
        </li>
        <li id="uid56">
          <p noindent="true">We have shown that behavioral contracts can effectively guide the implementation of SCC applications by enabling the generation of highly customized programming
          frameworks using a dedicated compiler. This approach ensures the conformance between the architecture and the implementation, while facilitating software evolution.</p>
        </li>
        <li id="uid57">
          <p noindent="true">We have shown that such descriptions are precise enough to verify safety properties such as information flow reachability or behavioral invariants.</p>
        </li>
        <li id="uid58">
          <p noindent="true">Based on an implementation of behavioral contracts in a design language targeting SCC applications, we haved assessed the benefit of behavioral contracts at a conceptual
          level and in terms of metrics on the resulting code.</p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid59" level="1">
      <bodyTitle>A Step-wise Approach for Integrating QoS throughout Software Development</bodyTitle>
      <p>Non-functional requirements are used to express the 
      <i>quality</i>to be expected from a system. For real-time systems such as avionics, it is critical to guarantee this quality, in particular time-related performance properties. In this domain,
      deterministic QoS is generally ensured at the execution platform level (
      <i>e.g.,</i>operating systems, distributed systems technologies, hardware specificities), independently of a particular application. When addressing the QoS requirements of a given application,
      these platform-specific guarantees are not sufficient.</p>
      <p>In this work, we have proposed a step-wise QoS approach integrated through all development phases and development artifacts 
      <ref xlink:href="#phoenix-2011-bid24" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. This approach is dedicated to control-loop systems. Control-loop
      systems are systems that sense the external environment, compute data, and eventually control the environment accordingly. This kind of systems can be found in a range of domains, including
      avionics, robotics, and pervasive computing. For example, in the avionics domain, a flight management application is a control-loop system that (1) senses the environment for location and other
      navigation information, (2) computes the trajectory and (3) modifies the wings configuration accordingly.</p>
      <p>The main contributions of this work are the following:</p>
      <simplelist>
        <li id="uid60">
          <p noindent="true">We have developed a step-wise approach that systematically processes QoS requirements throughout software development. This integrated approach is dedicated to
          control-loop systems, allowing to rely on a particular architectural pattern and thus enhancing the design and programming support level for non-functional aspects. For now, we focus on
          time-related performance but the approach could be generalized to other non-functional properties (
          <i>e.g.,</i>CPU or memory consumption).</p>
        </li>
        <li id="uid61">
          <p noindent="true">Our approach has been integrated into 
          <span class="smallcap" align="left">DiaSuite</span>, a tool-based development methodology dedicated to control-loop systems. 
          <span class="smallcap" align="left">DiaSuite</span>is based on a dedicated design language that we have enriched with time-related performance properties. This non-functional extension has
          been used to offer verification and programming support at each development stage.</p>
        </li>
        <li id="uid62">
          <p noindent="true">Our approach has been applied to the development of avionics applications such as a flight management system and a collision avoidance system. These experiments have
          demonstrated that our step-wise approach can effectively guide the avionics certification process.</p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid63" level="1">
      <bodyTitle>Architecturing Conflict Handling of Pervasive Computing Resources</bodyTitle>
      <p>The rapid development of new devices (further resources) and development tools being opened to third-parties have paved the way to an increasing number of applications being deployed in
      pervasive computing environments. These applications anarchically access resources. In this situation, it is very common for a resource to be accessed by multiple applications, potentially
      leading to conflicts. For example, in a building management system, a security application that grants access inside the building, can conflict with an application dealing with emergency
      situations like fires, preventing the building to be evacuated.</p>
      <p>Managing conflicts consists of three main parts, detection, resolution and prevention. These parts crosscut the development cycle of applications and pervasive computing systems. In this
      work, we have proposed a conflict management process that cleanly separates conflict management tasks by providing a design method and supporting tools 
      <ref xlink:href="#phoenix-2011-bid25" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. This facilitates the work of developers, architects and
      administrators, who can follow clear guidelines to manage conflicts.</p>
      <p>The main contributions of this work are the following:</p>
      <simplelist>
        <li id="uid64">
          <p noindent="true">We have identified requirements at different stages during the development cycle that are necessary to detect, resolve, and prevent conflicts. We have assigned duties and
          responsibilities to existing roles, that are carried out during the 
          <i>conflict management process</i>without interfering with the standard application development.</p>
        </li>
        <li id="uid65">
          <p noindent="true">We have extended a domain-specific design language to declare conflict resolution at an architectural level. During the conflict management process conditions are
          specified and prioritized. Afterwards conflicting applications (inter application) or modules (intra application) are linked to these conditions.</p>
        </li>
        <li id="uid66">
          <p noindent="true">The declared information is used to generate code dedicated to conflict handling. On the one hand, a compiler generates a dedicated framework that guides the
          implementation of the conflict handling logic at application and system level. On the other hand, it generates code that orchestrates resource accesses and prevents conflicts.</p>
        </li>
      </simplelist>
    </subsection>
  </resultats>
  <contrats id="uid67">
    <bodyTitle>Contracts and Grants with Industry</bodyTitle>
    <subsection id="uid68" level="1">
      <bodyTitle>Designing and developing simulation capabilities for network-centric systems – Industrial Fellowship (CIFRE / Thales)</bodyTitle>
      <participants>
        <person key="phoenix-2006-idm382810690416">
          <firstname>Charles</firstname>
          <lastname>Consel</lastname>
        </person>
        <person key="phoenix-2007-idm524142890416">
          <firstname>Julien</firstname>
          <lastname>Bruneau</lastname>
        </person>
      </participants>
      <p>The goal of this project is to provide simulation capabilities for testing network-centric systems. To achieve this goal, a formal description of the component behavior of such systems must
      be defined. Hybrid testing (combining virtual and real) of components, data and scenarios, as well as observability tools for component-tools will be studied in this project.</p>
      <p>Models, DSLs and protocols for modeling a network-centric system will be designed and developed during this project. A dedicated framework for the simulation must also be provided. Finally,
      the simulation of a system must allow to qualify the functional logic of this system.</p>
    </subsection>
    <subsection id="uid69" level="1">
      <bodyTitle>Integrating non-functional properties in a Design Language and its execution environment – Industrial Fellowship (CIFRE / Thales)</bodyTitle>
      <participants>
        <person key="phoenix-2006-idm382810690416">
          <firstname>Charles</firstname>
          <lastname>Consel</lastname>
        </person>
        <person key="protheo-2006-idm196801648560">
          <firstname>Emilie</firstname>
          <lastname>Balland</lastname>
        </person>
        <person key="phoenix-2009-idm2957701008">
          <firstname>Stéphanie</firstname>
          <lastname>Gatti</lastname>
        </person>
        <person key="phoenix-2009-idm2957697904">
          <firstname>Quentin</firstname>
          <lastname>Enard</lastname>
        </person>
      </participants>
      <p>The goal of this project is to add non-functional properties in the 
      <span class="smallcap" align="left">DiaSpec</span>language and in the 
      <span class="smallcap" align="left">DiaGen</span>generator. More especially, these non-functional properties are considered on three different levels:</p>
      <simplelist>
        <li id="uid70">
          <p noindent="true"><i>The component level.</i>The non-functional properties define temporal, physical and software constraints restrictive for a component.</p>
        </li>
        <li id="uid71">
          <p noindent="true"><i>The component coupling level.</i>The non-functional properties define the dependency between the components as well as the Quality of Service provided and required by each component of
          the environment.</p>
        </li>
        <li id="uid72">
          <p noindent="true"><i>The software architecture level.</i>The non-functional properties describe the resources that must be allocated to a component (memory, processing capacity). They also define the
          necessary resources for a component to interact with other components (network QoS).</p>
        </li>
      </simplelist>
      <p>This work will be illustrated and validated with a concrete application in the avionics domain.</p>
    </subsection>
  </contrats>
  <international id="uid73">
    <bodyTitle>Partnerships and Cooperations</bodyTitle>
    <subsection id="uid74" level="1">
      <bodyTitle>Regional Initiatives</bodyTitle>
      <simplelist>
        <li id="uid75">
          <p noindent="true">Assistive Technologies for Elderly</p>
          <p>The objective of this project is to provide an open platform of digital assistance dedicated to aging in place. This project is in collaboration with researchers in Cognitive Science
          (Bordeaux University) and the UDCCAS Gironde (Union Départementale des Centres Communaux d’Action Sociale) managing elderly care. This project will include a need analysis, the development
          of new assistive applications and their experimental validation.</p>
          <p>This work is funded by CARSAT Aquitaine (“Caisse d'Assurance Retraite et de la Santé au Travail”).</p>
        </li>
        <li id="uid76">
          <p noindent="true">Cognitive Assistance for Supporting the Autonomy of Persons with Intellectual Disabilities</p>
          <p>The objective of this project is to develop assistive technologies enabling people with intellectual disabilities to gain independence and to develop self-determined behaviors, such as
          making choices and taking decisions. This project is in collaboration with the “Handicap et Système Nerveux” reserach group (EA 4136, Bordeaux University), the TSA Chair of UQTR (Université
          du Québec à Trois-Rivières) in Psychology and the Association Trisomie 21 Gironde (Down’s Syndrom). The TSA chair has recently designed and built a smart apartment that is used to conduct
          experimental evaluation of our assistive technologies in realistic conditions.</p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid77" level="1">
      <bodyTitle>National Initiatives</bodyTitle>
      <simplelist>
        <li id="uid78">
          <p noindent="true">SmartImmo: Towards intelligent and environmentally-friendly buildings</p>
          <p>The SmartImmo project gathers research groups in pervasive systems and french companies working in the building construction, installation, and management. This project led by Orange
          Labs aims to make a building able to “communicate” with its occupants and to be environmentally-friendly (
          <i>e.g.,</i>automatic temperature adjusting). The main objectives of this project are to design a M2M (Machine-To-Machine) box for the heterogeneous equipment communication and to build
          several services on top of this platform.</p>
          <p>This project is funded by the SCS (Secured Communicating Solutions), a french pole of competitiveness.</p>
        </li>
        <li id="uid79">
          <p noindent="true">SERUS: Software Engineering for Resilient Ubiquitous Systems</p>
          <p>The objectives of this project is to propose a design-driven development methodology for resilient systems that takes into account dependability concerns in the early stages, ensures the
          traceability of these requirements throughout the system life-cycle, even during runtime evolution. To provide a high level of support, this methodology will rely on a design paradigm
          dedicated to sense/compute/control applications. This design will be enriched with dependability requirements and used to provide support throughout the system life-cycle. This project is
          in collaboration with the TSF-LAAS research group (CNRS, Toulouse) and the ADAM research project-team (Inria Lille Nord Europe).</p>
          <p>This work is funded by the Inria collaboration program (in French, “actions de recherches collaboratives”).</p>
        </li>
        <li id="uid80">
          <p noindent="true">School Inclusion for Children with Autism</p>
          <p>The objective of this project is to provide children with assistive technologies dedicated to the school routines. This project is in collaboration with the “Handicap et Système Nerveux”
          research group (EA 4136, Bordeaux University), the PsyCLÉ research center (EA 3273, Provence Aix-Marseille University) and the “Parole et Langage” research laboratory (CNRS, Provence
          Aix-Marseille University).</p>
          <p>This work is funded by the French Ministry of National Education.</p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid81" level="1">
      <bodyTitle>European Initiatives</bodyTitle>
      <subsection id="uid82" level="2">
        <bodyTitle>Collaborations in European Programs, except FP7</bodyTitle>
        <sanspuceslist>
          <li id="uid83">
            <p noindent="true">Program: SUDOE territorial cooperation program (Interreg IV B)</p>
          </li>
          <li id="uid84">
            <p noindent="true">Project acronym: Biomasud</p>
          </li>
          <li id="uid85">
            <p noindent="true">Project title: Mechanisms for sustainability and enhancement of solid biomass market in the space of SUDOE</p>
          </li>
          <li id="uid86">
            <p noindent="true">Duration: July 2011 - June 2013</p>
          </li>
          <li id="uid87">
            <p noindent="true">Coordinator: AVEBIOM</p>
          </li>
          <li id="uid88">
            <p noindent="true">Other partners: UCE (Consumers Union of Spain), CIEMAT (Public Research Agency for excellence in energy and environment, Spain), CBE (Centro da Biomassa para a Energia,
            Portugal), CVR (Centro para la Valorización de Residuos, Portugal) and UCFF (Union Française de la Coopération Forestière, France)</p>
          </li>
          <li id="uid89">
            <p noindent="true">Abstract: The goal of the Biomasud european project is to show the viability of the biomass-based energy model. The project aims to propose a certification and
            traceability process throughout the value chain of biofuel. Our objective is to design and implement a prototype of traceability system that will extract automatically traceability
            information based on sensors such as RFID tags, simplifying the certification process. This work will leverage our 
            <span class="smallcap" align="left">DiaSuite</span>development methodology and will be evaluated by the Biomasud partners.</p>
          </li>
        </sanspuceslist>
      </subsection>
      <subsection id="uid90" level="2">
        <bodyTitle>Major European Organizations with which you have followed Collaborations</bodyTitle>
        <sanspuceslist>
          <li id="uid91">
            <p noindent="true">University of Copenhagen, DIKU (Denmark)</p>
          </li>
          <li id="uid92">
            <p noindent="true">Subject: we have been exchanging visits and publishing articles with Julia Lawall</p>
          </li>
        </sanspuceslist>
      </subsection>
    </subsection>
    <subsection id="uid93" level="1">
      <bodyTitle>International Initiatives</bodyTitle>
      <subsection id="uid94" level="2">
        <bodyTitle>Inria International Partners</bodyTitle>
        <simplelist>
          <li id="uid95">
            <p noindent="true">University of McGill, Montréal, Canada</p>
          </li>
          <li id="uid96">
            <p noindent="true">University of Québec, Trois-Rivières, Canada</p>
          </li>
        </simplelist>
      </subsection>
      <subsection id="uid97" level="2">
        <bodyTitle>Visits of International Scientists</bodyTitle>
        <p>The Phoenix group has been visited by:</p>
        <simplelist>
          <li id="uid98">
            <p noindent="true">Scott Lee (University of Auckland, New Zealand) on April 27, 2011.</p>
          </li>
          <li id="uid99">
            <p noindent="true">Kay Connely (Indiana University, US) from October 6, 2011 to October 7, 2011.</p>
          </li>
          <li id="uid100">
            <p noindent="true">Dany Lussier-Desrochers (University of Québec, Trois-Rivières, Canada) from October 3, 2011 to October 7, 2011.</p>
          </li>
        </simplelist>
      </subsection>
    </subsection>
  </international>
  <diffusion id="uid101">
    <bodyTitle>Dissemination</bodyTitle>
    <subsection id="uid102" level="1">
      <bodyTitle>Animation of the scientific community</bodyTitle>
      <p>Charles Consel has been involved in the following events as:</p>
      <simplelist>
        <li id="uid103">
          <p noindent="true">Program Committee member of</p>
          <simplelist>
            <li id="uid104">
              <p noindent="true">ICWS 2011: IEEE International Conference on Web Services</p>
            </li>
            <li id="uid105">
              <p noindent="true">CyPhy 2011: Workshop on Design, Modeling and Evaluation of Cyber Physical Systems</p>
            </li>
            <li id="uid106">
              <p noindent="true">EUC 2011: IEEE/IFIP International Conference on Embedded and Ubiquitous Computing</p>
            </li>
          </simplelist>
        </li>
        <li id="uid107">
          <p noindent="true">Invited speaker at</p>
          <simplelist>
            <li id="uid108">
              <p noindent="true">NOTERE 2011: 11th annual International Conference on New Technologies of Distributed Systems</p>
            </li>
            <li id="uid109">
              <p noindent="true">PEPM 2011: ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation</p>
            </li>
            <li id="uid110">
              <p noindent="true">INS2I Scientific Council (invited talk on ambient computing) on September 29, 2011</p>
            </li>
            <li id="uid111">
              <p noindent="true">Boulder University, Colorado, July 2011</p>
            </li>
          </simplelist>
        </li>
        <li id="uid112">
          <p noindent="true">Guest Editor for the Annals of Telecommunications, Springer</p>
        </li>
        <li id="uid113">
          <p noindent="true">Member of the scientific commitee on “GDR génie de la programmation du logiciel” (CNRS)</p>
        </li>
        <li id="uid114">
          <p noindent="true">Member of the steering committee of the International Conference on Generative Programming and Component Engineering (GPCE)</p>
        </li>
        <li id="uid115">
          <p noindent="true">Member of the IFIP WG 
          <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mn>2</mn><mo>.</mo><mn>11</mn></mrow></math></formula>on Program Generation</p>
        </li>
        <li id="uid116">
          <p noindent="true">Member of the Inria working group on research and perspectives in the domain “Réseaux, systèmes et services, calcul distribué”</p>
        </li>
        <li id="uid117">
          <p noindent="true">French representative for IFIP TC2 "Software Theory and Practice"</p>
        </li>
        <li id="uid118">
          <p noindent="true">Member of the AERES evaluation committee of the I3S laboratory (UMR 6070), Sophia-Antipolis</p>
        </li>
      </simplelist>
      <p>Charles Consel has participated in the following thesis defense committees:</p>
      <simplelist>
        <li id="uid119">
          <p noindent="true">Henner Jakob, June 27, University of Bordeaux, France</p>
        </li>
        <li id="uid120">
          <p noindent="true">Damien Cassou, March 17, University of Bordeaux, France</p>
        </li>
        <li id="uid121">
          <p noindent="true">Julien Mercadal, October 10, University of Bordeaux, France</p>
        </li>
        <li id="uid122">
          <p noindent="true">Adrienne Tankeu Choitat, December 16, University of Toulouse, France</p>
        </li>
      </simplelist>
      <p>Emilie Balland has been involved as in the following events as:</p>
      <simplelist>
        <li id="uid123">
          <p noindent="true">Reviewer of the journal “Science of Computer Programming”</p>
        </li>
        <li id="uid124">
          <p noindent="true">Program Committee member of</p>
          <simplelist>
            <li id="uid125">
              <p noindent="true">WASDeTT 2011: 4th International Workshop on Academic Software Development Tools and Techniques</p>
            </li>
            <li id="uid126">
              <p noindent="true">LDTA 2011: 11th Workshop on Language Descriptions, Tools and Applications (Co-located with ETAPS 2011)</p>
            </li>
            <li id="uid127">
              <p noindent="true">DSL 2011: 2th IFIP Working Conference on Domain Specific Languages</p>
            </li>
          </simplelist>
        </li>
        <li id="uid128">
          <p noindent="true">Local chair of</p>
          <simplelist>
            <li id="uid129">
              <p noindent="true">LDTA 2011: 11th Workshop on Language Descriptions, Tools and Applications</p>
            </li>
            <li id="uid130">
              <p noindent="true">DSL 2011: 2th IFIP Working Conference on Domain Specific Languages</p>
            </li>
          </simplelist>
        </li>
        <li id="uid131">
          <p noindent="true">Member of the Inria local committee on Popular Science Events</p>
        </li>
        <li id="uid132">
          <p noindent="true">Member of the IFIP WG 
          <formula type="inline"><math xmlns="http://www.w3.org/1998/Math/MathML" overflow="scroll"><mrow><mn>2</mn><mo>.</mo><mn>11</mn></mrow></math></formula>on Program Generation</p>
        </li>
      </simplelist>
      <p>Participation of the Phoenix Inria project team in the following events:</p>
      <simplelist>
        <li id="uid133">
          <p noindent="true">"Les Rencontres du Numérique éducatif et culturel" on assistive technology for autistic children at school, March 2011</p>
        </li>
        <li id="uid134">
          <p noindent="true">“Fête de la science” (national popular science event), October 2011</p>
        </li>
        <li id="uid135">
          <p noindent="true">“Journées Eurêka” (regional popular science event), October 2011</p>
        </li>
        <li id="uid136">
          <p noindent="true">Rencontre Inria Idustries “Les sciences du numérique au service de la santé à domicile et de l'autonomie”, October 2011</p>
        </li>
        <li id="uid137">
          <p noindent="true">Signature of the convention on disability with FIPHFP (Fonds pour l'Insertion des Personnes Handicapées dans la Fonction Publique) by Inria, November 2011</p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid138" level="1">
      <bodyTitle>Teaching</bodyTitle>
      <p>Teaching:</p>
      <sanspuceslist>
        <li id="uid139">
          <p noindent="true">Master: Domain-Specific Languages, Charles Consel, 13 hours (M2 level), ENSEIRB engineering school, France.</p>
        </li>
        <li id="uid140">
          <p noindent="true">Master: Telephony over IP, Charles Consel, 10 hours (M2 level), ENSEIRB engineering school, France.</p>
        </li>
        <li id="uid141">
          <p noindent="true">Master: Domain-Specific Languages for Telephony Services, Charles Consel, 15 hours (M2 level), ENSEIRB engineering school, France.</p>
        </li>
        <li id="uid142">
          <p noindent="true">Master: Architecture Description Languages, Charles Consel, 12 hours (M2 level), ENSEIRB engineering school, France.</p>
        </li>
        <li id="uid143">
          <p noindent="true">Master: Software Development guided by modeling and verification, Emilie Balland, 20 hours (M2 level), ENSEIRB engineering school, France.</p>
        </li>
      </sanspuceslist>
      <p>PhD &amp; HdR:</p>
      <sanspuceslist>
        <li id="uid144">
          <p noindent="true">PhD : Henner Jakob, “Vers la sécurisation des systèmes d'informatique ubiquitaire par le design : une approche langage”, University of Bordeaux, June 27, 2011, supervised
          by Charles Consel</p>
        </li>
        <li id="uid145">
          <p noindent="true">PhD : Damien Cassou, “Développement logiciel orienté paradigme de conception : la programmation dirigée par la spécification”, University of Bordeaux, March 17, 2011,
          supervised by Charles Consel</p>
        </li>
        <li id="uid146">
          <p noindent="true">PhD : Julien Mercadal, “Approche langage au développement logiciel : application au domaine des systèmes d'informatique ubiquitaire”, University of Bordeaux, October 10,
          2011, supervised by Charles Consel</p>
        </li>
        <li id="uid147">
          <p noindent="true">PhD in progress : Julien Bruneau, “Plateforme d'exécution paramétrable de systèmes communicants”, October 2008, supervised by Charles Consel</p>
        </li>
        <li id="uid148">
          <p noindent="true">PhD in progress : Hongyu Guan, “Gestion de l’hétérogénéité des environnements ubiquitaires et de la consommation d’énergie des environnements mobiles”, started in
          February 2009, supervised by Charles Consel</p>
        </li>
        <li id="uid149">
          <p noindent="true">PhD in progress : Pengfei Liu, “Politiques de securité pour les environnements ubiquitaires”, started in October 2009, supervised by Charles Consel</p>
        </li>
        <li id="uid150">
          <p noindent="true">PhD in progress : Stéphanie Gatti, “Architecture en composants et qualification incrémentale”, started in February 2010, supervised by Charles Consel and Emilie
          Balland</p>
        </li>
        <li id="uid151">
          <p noindent="true">PhD in progress : Quentin Enard, “Intégration de concepts de sûreté de fonctionnement dans un langage de description d'architecture et son support d'exécution”, started
          in February 2010, supervised by Charles Consel</p>
        </li>
        <li id="uid152">
          <p noindent="true">PhD in progress : Luc Vercellin, “Prise en compte des concepts d'adaptation dans le développement d'applications d'assistance cognitive”, started in October 2011,
          supervised by Charles Consel and Emilie Balland</p>
        </li>
      </sanspuceslist>
    </subsection>
  </diffusion>
  <biblio id="bibliography" html="bibliography" numero="10" titre="Bibliography">
    <biblStruct id="phoenix-2011-bid33" type="inproceedings" rend="refer" n="refercite:cassou:2011:inria-00537789:2">
      <identifiant type="hal" value="inria-00537789"/>
      <analytic>
        <title level="a">Leveraging Software Architectures to Guide and Verify the Development of Sense/Compute/Control Applications</title>
        <author>
          <persName key="phoenix-2007-idm524142903968">
            <foreName>Damien</foreName>
            <surname>Cassou</surname>
            <initial>D.</initial>
          </persName>
          <persName key="protheo-2006-idm196801648560">
            <foreName>Emilie</foreName>
            <surname>Balland</surname>
            <initial>E.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="obasco-2006-idm179782147760">
            <foreName>Julia</foreName>
            <surname>Lawall</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <title level="m">ICSE'11: Proceedings of the 33rd International Conference on Software Engineering</title>
        <loc>Honolulu, United States</loc>
        <imprint>
          <publisher>
            <orgName>ACM</orgName>
          </publisher>
          <dateStruct>
            <year>2011</year>
          </dateStruct>
          <biblScope type="pages">431-440</biblScope>
          <ref xlink:href="http://hal.inria.fr/inria-00537789/en" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00537789/
          <allowbreak/>en</ref>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid32" type="article" rend="refer" n="refercite:cassou:2011:inria-00631477:1">
      <identifiant type="hal" value="inria-00631477"/>
      <analytic>
        <title level="a">Towards a Tool-based Development Methodology for Pervasive Computing Applications</title>
        <author>
          <persName key="phoenix-2007-idm524142903968">
            <foreName>Damien</foreName>
            <surname>Cassou</surname>
            <initial>D.</initial>
          </persName>
          <persName key="phoenix-2007-idm524142890416">
            <foreName>Julien</foreName>
            <surname>Bruneau</surname>
            <initial>J.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="protheo-2006-idm196801648560">
            <foreName>Emilie</foreName>
            <surname>Balland</surname>
            <initial>E.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-editorial-board="yes" x-international-audience="yes">
        <title level="j">IEEE Transactions on Software Engineering</title>
        <imprint>
          <dateStruct>
            <month>October</month>
            <year>2011</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/inria-00631477/en" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00631477/
          <allowbreak/>en</ref>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid38" type="inbook" rend="refer" n="refercite:consel:dagstuhl03-refer">
      <analytic>
        <author>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">From A Program Family To A Domain-Specific Language</title>
        <title level="s">Lecture Notes in Computer Science, State-of-the-Art Survey</title>
        <imprint>
          <biblScope type="number">3016</biblScope>
          <publisher>
            <orgName>Springer-Verlag</orgName>
          </publisher>
          <dateStruct>
            <year>2004</year>
          </dateStruct>
          <biblScope type="pages">19–29</biblScope>
          <ref xlink:href="http://phoenix.labri.fr/publications/papers/dagstuhl-consel.pdf" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>phoenix.
          <allowbreak/>labri.
          <allowbreak/>fr/
          <allowbreak/>publications/
          <allowbreak/>papers/
          <allowbreak/>dagstuhl-consel.
          <allowbreak/>pdf</ref>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid40" type="article" rend="refer" n="refercite:consel-lawall-lemeur:scp04-refer">
      <analytic>
        <title level="a">A Tour of Tempo: A Program Specializer for the C Language</title>
        <author>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="obasco-2006-idm179782147760">
            <foreName>Julia</foreName>
            <surname>Lawall</surname>
            <initial>J.</initial>
          </persName>
          <persName key="jacquard-2006-idm390746289088">
            <foreName>Anne-Fleur</foreName>
            <surname>Le Meur</surname>
            <initial>A.-F.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="j">Science of Computer Programming</title>
        <imprint>
          <dateStruct>
            <year>2004</year>
          </dateStruct>
          <ref xlink:href="http://phoenix.labri.fr/publications/papers/tour-tempo.ps.gz" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>phoenix.
          <allowbreak/>labri.
          <allowbreak/>fr/
          <allowbreak/>publications/
          <allowbreak/>papers/
          <allowbreak/>tour-tempo.
          <allowbreak/>ps.
          <allowbreak/>gz</ref>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid37" type="inproceedings" rend="refer" n="refercite:Consel-Reveillere:ase03-refer">
      <analytic>
        <title level="a">A Programmable Client-Server Model: Robust Extensibility via DSLs</title>
        <author>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810686672">
            <foreName>Laurent</foreName>
            <surname>Réveillère</surname>
            <initial>L.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">Proceedings of the 18th IEEE International Conference on Automated Software Engineering (ASE 2003)</title>
        <loc>Montréal, Canada</loc>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society Press</orgName>
          </publisher>
          <dateStruct>
            <month>November</month>
            <year>2003</year>
          </dateStruct>
          <biblScope type="pages">70–79</biblScope>
          <ref xlink:href="http://phoenix.labri.fr/publications/papers/Consel-Reveillere_ase03.pdf" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>phoenix.
          <allowbreak/>labri.
          <allowbreak/>fr/
          <allowbreak/>publications/
          <allowbreak/>papers/
          <allowbreak/>Consel-Reveillere_ase03.
          <allowbreak/>pdf</ref>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid39" type="inbook" rend="refer" n="refercite:consel-reveillere:dagstuhl03-refer">
      <analytic>
        <author>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810686672">
            <foreName>Laurent</foreName>
            <surname>Réveillère</surname>
            <initial>L.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">A DSL Paradigm for Domains of Services: A Study of Communication Services</title>
        <title level="s">Lecture Notes in Computer Science, State-of-the-Art Survey</title>
        <imprint>
          <biblScope type="number">3016</biblScope>
          <publisher>
            <orgName>Springer-Verlag</orgName>
          </publisher>
          <dateStruct>
            <year>2004</year>
          </dateStruct>
          <biblScope type="pages">165–179</biblScope>
          <ref xlink:href="http://phoenix.labri.fr/publications/papers/dagstuhl04_consel_reveillere.pdf" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>phoenix.
          <allowbreak/>labri.
          <allowbreak/>fr/
          <allowbreak/>publications/
          <allowbreak/>papers/
          <allowbreak/>dagstuhl04_consel_reveillere.
          <allowbreak/>pdf</ref>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid41" type="article" rend="refer" n="refercite:lemeur-al:hosc03-refer">
      <analytic>
        <title level="a">Specialization Scenarios: A Pragmatic Approach to Declaring Program Specialization</title>
        <author>
          <persName key="jacquard-2006-idm390746289088">
            <foreName>Anne-Fleur</foreName>
            <surname>Le Meur</surname>
            <initial>A.-F.</initial>
          </persName>
          <persName key="obasco-2006-idm179782147760">
            <foreName>Julia</foreName>
            <surname>Lawall</surname>
            <initial>J.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="j">Higher-Order and Symbolic Computation</title>
        <imprint>
          <biblScope type="volume">17</biblScope>
          <biblScope type="number">1</biblScope>
          <dateStruct>
            <year>2004</year>
          </dateStruct>
          <biblScope type="pages">47–92</biblScope>
          <ref xlink:href="http://phoenix.labri.fr/publications/papers/spec-scenarios-hosc2003.ps.gz" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>phoenix.
          <allowbreak/>labri.
          <allowbreak/>fr/
          <allowbreak/>publications/
          <allowbreak/>papers/
          <allowbreak/>spec-scenarios-hosc2003.
          <allowbreak/>ps.
          <allowbreak/>gz</ref>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid36" type="article" rend="refer" n="refercite:McNamee-al:tocs2001-refer">
      <analytic>
        <title level="a">Specialization tools and techniques for systematic optimization of system software</title>
        <author>
          <persName>
            <foreName>Dylan</foreName>
            <surname>McNamee</surname>
            <initial>D.</initial>
          </persName>
          <persName>
            <foreName>Jonathan</foreName>
            <surname>Walpole</surname>
            <initial>J.</initial>
          </persName>
          <persName>
            <foreName>Calton</foreName>
            <surname>Pu</surname>
            <initial>C.</initial>
          </persName>
          <persName>
            <foreName>Crispin</foreName>
            <surname>Cowan</surname>
            <initial>C.</initial>
          </persName>
          <persName>
            <foreName>Charles</foreName>
            <surname>Krasic</surname>
            <initial>C.</initial>
          </persName>
          <persName>
            <foreName>Ashvin</foreName>
            <surname>Goel</surname>
            <initial>A.</initial>
          </persName>
          <persName>
            <foreName>Perry</foreName>
            <surname>Wagle</surname>
            <initial>P.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="obasco-2006-idm179782179664">
            <foreName>Gilles</foreName>
            <surname>Muller</surname>
            <initial>G.</initial>
          </persName>
          <persName key="signes-2006-idm424409775728">
            <foreName>Renaud</foreName>
            <surname>Marlet</surname>
            <initial>R.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="j">ACM Transactions on Computer Systems</title>
        <imprint>
          <biblScope type="volume">19</biblScope>
          <biblScope type="number">2</biblScope>
          <dateStruct>
            <month>May</month>
            <year>2001</year>
          </dateStruct>
          <biblScope type="pages">217–251</biblScope>
          <ref xlink:href="http://phoenix.labri.fr/publications/papers/tocs01-namee.pdf" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>phoenix.
          <allowbreak/>labri.
          <allowbreak/>fr/
          <allowbreak/>publications/
          <allowbreak/>papers/
          <allowbreak/>tocs01-namee.
          <allowbreak/>pdf</ref>
        </imprint>
      </monogr>
      <affiliation>
        <country>US</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid34" type="inproceedings" rend="refer" n="refercite:mercadal:2010:inria-00486930:1">
      <identifiant type="hal" value="inria-00486930"/>
      <analytic>
        <title level="a">A Domain-Specific Approach to Architecturing Error Handling in Pervasive Computing</title>
        <author>
          <persName key="phoenix-2006-idm382810664048">
            <foreName>Julien</foreName>
            <surname>Mercadal</surname>
            <initial>J.</initial>
          </persName>
          <persName key="phoenix-2009-idm2957697904">
            <foreName>Quentin</foreName>
            <surname>Enard</surname>
            <initial>Q.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="obasco-2006-idm179782113584">
            <foreName>Nicolas</foreName>
            <surname>Loriant</surname>
            <initial>N.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <title level="m">OOPSLA'10: Proceedings of the 25th Annual ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications</title>
        <loc>États-Unis Reno</loc>
        <imprint>
          <dateStruct>
            <month>October</month>
            <year>2010</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/inria-00486930/en" type="hal" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00486930/
          <allowbreak/>en</ref>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid35" type="inproceedings" rend="refer" n="refercite:Merillon-al:osdi2000-refer">
      <analytic>
        <title level="a">Devil: An IDL for Hardware Programming</title>
        <author>
          <persName>
            <foreName>Fabrice</foreName>
            <surname>Mérillon</surname>
            <initial>F.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810686672">
            <foreName>Laurent</foreName>
            <surname>Réveillère</surname>
            <initial>L.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="signes-2006-idm424409775728">
            <foreName>Renaud</foreName>
            <surname>Marlet</surname>
            <initial>R.</initial>
          </persName>
          <persName key="obasco-2006-idm179782179664">
            <foreName>Gilles</foreName>
            <surname>Muller</surname>
            <initial>G.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">Proceedings of the Fourth Symposium on Operating Systems Design and Implementation</title>
        <loc>San Diego, California</loc>
        <imprint>
          <dateStruct>
            <month>October</month>
            <year>2000</year>
          </dateStruct>
          <biblScope type="pages">17–30</biblScope>
          <ref xlink:href="http://phoenix.labri.fr/publications/papers/osdi00-merillon.pdf" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>phoenix.
          <allowbreak/>labri.
          <allowbreak/>fr/
          <allowbreak/>publications/
          <allowbreak/>papers/
          <allowbreak/>osdi00-merillon.
          <allowbreak/>pdf</ref>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct dedoublkey="5327" id="phoenix-2011-bid29" type="phdthesis" rend="year" n="cite:cassou:2011:tel-00583246:4">
      <identifiant type="hal" value="tel-00583246"/>
      <monogr>
        <title level="m">Développement logiciel orienté paradigme de conception : la programmation dirigée par la spécification</title>
        <author>
          <persName key="phoenix-2007-idm524142903968">
            <foreName>Damien</foreName>
            <surname>Cassou</surname>
            <initial>D.</initial>
          </persName>
        </author>
        <imprint>
          <publisher>
            <orgName type="school">Université Sciences et Technologies - Bordeaux I</orgName>
          </publisher>
          <dateStruct>
            <month>March</month>
            <year>2011</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/tel-00583246/en" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>tel-00583246/
          <allowbreak/>en</ref>
        </imprint>
      </monogr>
      <note type="typdoc">Ph. D. Thesis</note>
    </biblStruct>
    <biblStruct dedoublkey="5545" id="phoenix-2011-bid30" type="phdthesis" rend="year" n="cite:jakob">
      <monogr>
        <title level="m">Vers la sécurisation des systèmes d'informatique ubiquitaire par le design : une approche langage</title>
        <author>
          <persName key="phoenix-2008-idm150882412384">
            <foreName>Henner</foreName>
            <surname>Jakob</surname>
            <initial>H.</initial>
          </persName>
        </author>
        <imprint>
          <publisher>
            <orgName type="school">Université Sciences et Technologies - Bordeaux I</orgName>
          </publisher>
          <dateStruct>
            <month>June</month>
            <year>2011</year>
          </dateStruct>
        </imprint>
      </monogr>
      <note type="typdoc">Ph. D. Thesis</note>
    </biblStruct>
    <biblStruct dedoublkey="5266" id="phoenix-2011-bid31" type="phdthesis" rend="year" n="cite:mercadal">
      <monogr>
        <title level="m">Approche langage au développement logiciel : application au domaine des systèmes d'informatique ubiquitaire</title>
        <author>
          <persName key="phoenix-2006-idm382810664048">
            <foreName>Julien</foreName>
            <surname>Mercadal</surname>
            <initial>J.</initial>
          </persName>
        </author>
        <imprint>
          <publisher>
            <orgName type="school">Université Sciences et Technologies - Bordeaux I</orgName>
          </publisher>
          <dateStruct>
            <month>October</month>
            <year>2011</year>
          </dateStruct>
        </imprint>
      </monogr>
      <note type="typdoc">Ph. D. Thesis</note>
    </biblStruct>
    <biblStruct dedoublkey="1693" id="phoenix-2011-bid26" type="article" rend="year" n="cite:cassou:2011:inria-00631477:1">
      <identifiant type="hal" value="inria-00631477"/>
      <analytic>
        <title level="a">Towards a Tool-based Development Methodology for Pervasive Computing Applications</title>
        <author>
          <persName key="phoenix-2007-idm524142903968">
            <foreName>Damien</foreName>
            <surname>Cassou</surname>
            <initial>D.</initial>
          </persName>
          <persName key="phoenix-2007-idm524142890416">
            <foreName>Julien</foreName>
            <surname>Bruneau</surname>
            <initial>J.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="protheo-2006-idm196801648560">
            <foreName>Emilie</foreName>
            <surname>Balland</surname>
            <initial>E.</initial>
          </persName>
        </author>
      </analytic>
      <monogr id="rid00837" x-editorial-board="yes" x-international-audience="yes">
        <idno type="issn">0098-5589</idno>
        <title level="j">IEEE Transactions on Software Engineering</title>
        <imprint>
          <dateStruct>
            <month>October</month>
            <year>2011</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/inria-00631477/en" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00631477/
          <allowbreak/>en</ref>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct dedoublkey="3726" id="phoenix-2011-bid23" type="inproceedings" rend="year" n="cite:cassou:2011:inria-00537789:2">
      <identifiant type="hal" value="inria-00537789"/>
      <analytic>
        <title level="a">Leveraging Software Architectures to Guide and Verify the Development of Sense/Compute/Control Applications</title>
        <author>
          <persName key="phoenix-2007-idm524142903968">
            <foreName>Damien</foreName>
            <surname>Cassou</surname>
            <initial>D.</initial>
          </persName>
          <persName key="protheo-2006-idm196801648560">
            <foreName>Emilie</foreName>
            <surname>Balland</surname>
            <initial>E.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="obasco-2006-idm179782147760">
            <foreName>Julia</foreName>
            <surname>Lawall</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <title level="m">ICSE'11: Proceedings of the 33rd International Conference on Software Engineering</title>
        <loc>Honolulu, United States</loc>
        <imprint>
          <publisher>
            <orgName>ACM</orgName>
          </publisher>
          <dateStruct>
            <year>2011</year>
          </dateStruct>
          <biblScope type="pages">431-440</biblScope>
          <ref xlink:href="http://hal.inria.fr/inria-00537789/en" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00537789/
          <allowbreak/>en</ref>
        </imprint>
        <meeting id="cid340388">
          <title>ACM/IEEE International Conference on Software Engineering</title>
          <num>33</num>
          <abbr type="sigle">ICSE</abbr>
        </meeting>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct dedoublkey="3313" id="phoenix-2011-bid28" type="inproceedings" rend="year" n="cite:cassou:2011:inria-00602098:1">
      <identifiant type="hal" value="inria-00602098"/>
      <analytic>
        <title level="a">Faire levier sur les architectures logicielles pour guider et vérifier le développement d'applications SCC</title>
        <author>
          <persName key="phoenix-2007-idm524142903968">
            <foreName>Damien</foreName>
            <surname>Cassou</surname>
            <initial>D.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="protheo-2006-idm196801648560">
            <foreName>Emilie</foreName>
            <surname>Balland</surname>
            <initial>E.</initial>
          </persName>
          <persName key="obasco-2006-idm179782147760">
            <foreName>Julia</foreName>
            <surname>Lawall</surname>
            <initial>J.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="no" x-proceedings="yes">
        <title level="m">GDR GPL'11: 3ème journées du Génie de la programmation et du logiciel</title>
        <loc>Lille, France</loc>
        <imprint>
          <dateStruct>
            <month>June</month>
            <year>2011</year>
          </dateStruct>
          <biblScope type="pages">33–34</biblScope>
          <ref xlink:href="http://hal.inria.fr/inria-00602098/en" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00602098/
          <allowbreak/>en</ref>
        </imprint>
        <meeting id="cid389343">
          <title>Journées nationales du GDR Génie de la Programmation et du Logiciel</title>
          <num>2011</num>
          <abbr type="sigle">GDR GPL</abbr>
        </meeting>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct dedoublkey="3115" id="phoenix-2011-bid27" type="inproceedings" rend="year" n="cite:consel:2011:inria-00581652:1">
      <identifiant type="hal" value="inria-00581652"/>
      <identifiant type="doi" value="10.1145/1929501.1929515"/>
      <analytic>
        <title level="a">DiaSuite:A Paradigm-Oriented Software Development Approach (invited paper)</title>
        <author>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <title level="m">20th ACM SIGPLAN workshop on Partial evaluation and program manipulation : PEPM'11</title>
        <loc>Austin, TX, United States</loc>
        <imprint>
          <publisher>
            <orgName>ACM</orgName>
          </publisher>
          <dateStruct>
            <month>January</month>
            <year>2011</year>
          </dateStruct>
          <biblScope type="pages">77-78</biblScope>
          <ref xlink:href="http://hal.inria.fr/inria-00581652/en" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00581652/
          <allowbreak/>en</ref>
        </imprint>
        <meeting id="cid22560">
          <title>ACM SIGPLAN Symposium on Partial Evaluation and Program Manipulation</title>
          <num>2012</num>
          <abbr type="sigle">PEPM</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    <biblStruct dedoublkey="2688" id="phoenix-2011-bid24" type="inproceedings" rend="year" n="cite:gatti:2011:inria-00561619:1">
      <identifiant type="hal" value="inria-00561619"/>
      <analytic>
        <title level="a">A Step-wise Approach for Integrating QoS throughout Software Development</title>
        <author>
          <persName key="phoenix-2009-idm2957701008">
            <foreName>Stéphanie</foreName>
            <surname>Gatti</surname>
            <initial>S.</initial>
          </persName>
          <persName key="protheo-2006-idm196801648560">
            <foreName>Emilie</foreName>
            <surname>Balland</surname>
            <initial>E.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <title level="m">FASE'11: Proceedings of the 14th European Conference on Fundamental Approaches to Software Engineering</title>
        <loc>Sarrebruck, Germany</loc>
        <title level="s">Lecture Notes in Computer Science</title>
        <imprint>
          <biblScope type="volume">6603</biblScope>
          <publisher>
            <orgName>Springer</orgName>
          </publisher>
          <dateStruct>
            <month>March</month>
            <year>2011</year>
          </dateStruct>
          <biblScope type="pages">217-231</biblScope>
          <ref xlink:href="http://hal.inria.fr/inria-00561619/en" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00561619/
          <allowbreak/>en</ref>
        </imprint>
        <meeting id="cid282631">
          <title>International Conference on Fundamental Approaches to Software Engineering</title>
          <num>14</num>
          <abbr type="sigle">FASE</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    <biblStruct dedoublkey="2628" id="phoenix-2011-bid25" type="inproceedings" rend="year" n="cite:jakob:2011:inria-00581604:1">
      <identifiant type="hal" value="inria-00581604"/>
      <analytic>
        <title level="a">Architecturing Conflict Handling of Pervasive Computing Resources</title>
        <author>
          <persName key="phoenix-2008-idm150882412384">
            <foreName>Henner</foreName>
            <surname>Jakob</surname>
            <initial>H.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="obasco-2006-idm179782113584">
            <foreName>Nicolas</foreName>
            <surname>Loriant</surname>
            <initial>N.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <title level="m">11th IFIP International Conference on Distributed Applications and Interoperable Systems</title>
        <loc>Reykjavik, Iceland</loc>
        <title level="s">Lecture Notes in Computer Science</title>
        <imprint>
          <biblScope type="volume">6723</biblScope>
          <publisher>
            <orgName>Springer</orgName>
          </publisher>
          <dateStruct>
            <month>June</month>
            <year>2011</year>
          </dateStruct>
          <biblScope type="pages">92-105</biblScope>
          <ref xlink:href="http://hal.inria.fr/inria-00581604/en" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00581604/
          <allowbreak/>en</ref>
        </imprint>
        <meeting id="cid100373">
          <title>IFIP International Conference on Distributed Applications and Interoperable Systems</title>
          <num>11</num>
          <abbr type="sigle">DAIS</abbr>
        </meeting>
      </monogr>
      <affiliation>
        <country>GB</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid2" type="inproceedings" rend="foot" n="footcite:Boinot-al:ase2000">
      <analytic>
        <title level="a">A Declarative Approach for Designing and Developing Adaptive Components</title>
        <author>
          <persName>
            <foreName>Philippe</foreName>
            <surname>Boinot</surname>
            <initial>P.</initial>
          </persName>
          <persName key="signes-2006-idm424409775728">
            <foreName>Renaud</foreName>
            <surname>Marlet</surname>
            <initial>R.</initial>
          </persName>
          <persName key="obasco-2006-idm179782176640">
            <foreName>Jacques</foreName>
            <surname>Noyé</surname>
            <initial>J.</initial>
          </persName>
          <persName key="obasco-2006-idm179782179664">
            <foreName>Gilles</foreName>
            <surname>Muller</surname>
            <initial>G.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">Proceedings of the 15th IEEE International Conference on Automated Software Engineering (ASE 2000)</title>
        <loc>Grenoble, France</loc>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society Press</orgName>
          </publisher>
          <dateStruct>
            <month>September</month>
            <year>2000</year>
          </dateStruct>
          <biblScope type="pages">111–119</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid18" type="article" rend="foot" n="footcite:Chirokoff-Consel:hosc99">
      <analytic>
        <title level="a">Combining Program and Data Specialization</title>
        <author>
          <persName>
            <foreName>S.</foreName>
            <surname>Chirokoff</surname>
            <initial>S.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="signes-2006-idm424409775728">
            <foreName>Renaud</foreName>
            <surname>Marlet</surname>
            <initial>R.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="j">Higher-Order and Symbolic Computation</title>
        <imprint>
          <biblScope type="volume">12</biblScope>
          <biblScope type="number">4</biblScope>
          <dateStruct>
            <month>December</month>
            <year>1999</year>
          </dateStruct>
          <biblScope type="pages">309–335</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid15" type="article" rend="foot" n="footcite:Consel-Lawall-Lemeur:scp04">
      <analytic>
        <title level="a">A Tour of Tempo: A Program Specializer for the C Language</title>
        <author>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="obasco-2006-idm179782147760">
            <foreName>Julia</foreName>
            <surname>Lawall</surname>
            <initial>J.</initial>
          </persName>
          <persName key="jacquard-2006-idm390746289088">
            <foreName>Anne-Fleur</foreName>
            <surname>Le Meur</surname>
            <initial>A.-F.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="j">Science of Computer Programming</title>
        <imprint>
          <dateStruct>
            <year>2004</year>
          </dateStruct>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid1" type="inproceedings" rend="foot" n="footcite:Consel-Marlet:plilp98">
      <analytic>
        <title level="a">Architecturing software using a methodology for language development</title>
        <author>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="signes-2006-idm424409775728">
            <foreName>Renaud</foreName>
            <surname>Marlet</surname>
            <initial>R.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <editor role="editor">
          <persName key="comete-2006-idm52895126352">
            <foreName>C.</foreName>
            <surname>Palamidessi</surname>
            <initial>C.</initial>
          </persName>
          <persName>
            <foreName>H.</foreName>
            <surname>Glaser</surname>
            <initial>H.</initial>
          </persName>
          <persName>
            <foreName>K.</foreName>
            <surname>Meinke</surname>
            <initial>K.</initial>
          </persName>
        </editor>
        <title level="m">Proceedings of the 10th International Symposium on Programming Language Implementation and Logic Programming</title>
        <loc>Pisa, Italy</loc>
        <title level="s">Lecture Notes in Computer Science</title>
        <imprint>
          <biblScope type="volume">1490</biblScope>
          <dateStruct>
            <month>September</month>
            <year>1998</year>
          </dateStruct>
          <biblScope type="pages">170–194</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid22" type="article" rend="foot" n="footcite:Dey01b">
      <analytic>
        <title level="a">A conceptual framework and a toolkit for supporting the rapid prototyping of context-aware applications</title>
        <author>
          <persName>
            <foreName>Anind K.</foreName>
            <surname>Dey</surname>
            <initial>A. K.</initial>
          </persName>
          <persName>
            <foreName>Gregory D.</foreName>
            <surname>Abowd</surname>
            <initial>G. D.</initial>
          </persName>
          <persName>
            <foreName>Daniel</foreName>
            <surname>Salber</surname>
            <initial>D.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="j">Human-Computer Interaction</title>
        <imprint>
          <biblScope type="volume">16</biblScope>
          <biblScope type="number">2</biblScope>
          <dateStruct>
            <year>2001</year>
          </dateStruct>
          <biblScope type="pages">97–166</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>US</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid5" type="inproceedings" rend="foot" n="footcite:Lemeur-al:cd02">
      <analytic>
        <title level="a">An Environment for Building Customizable Software Components</title>
        <author>
          <persName key="jacquard-2006-idm390746289088">
            <foreName>Anne-Fleur</foreName>
            <surname>Le Meur</surname>
            <initial>A.-F.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName>
            <foreName>B.</foreName>
            <surname>Escrig</surname>
            <initial>B.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">IFIP/ACM Conference on Component Deployment</title>
        <loc>Berlin, Germany</loc>
        <imprint>
          <dateStruct>
            <month>June</month>
            <year>2002</year>
          </dateStruct>
          <biblScope type="pages">1–14</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid3" type="inproceedings" rend="foot" n="footcite:Lemeur-Consel:splc-pla2000">
      <analytic>
        <title level="a">Generic Software Component Configuration Via Partial Evaluation</title>
        <author>
          <persName key="jacquard-2006-idm390746289088">
            <foreName>Anne-Fleur</foreName>
            <surname>Le Meur</surname>
            <initial>A.-F.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">SPLC'2000 Workshop – Product Line Architecture</title>
        <loc>Denver, Colorado</loc>
        <imprint>
          <dateStruct>
            <month>August</month>
            <year>2000</year>
          </dateStruct>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid4" type="inproceedings" rend="foot" n="footcite:Lemeur-al:pepm02">
      <analytic>
        <title level="a">Towards Bridging the Gap Between Programming Languages and Partial Evaluation</title>
        <author>
          <persName key="jacquard-2006-idm390746289088">
            <foreName>Anne-Fleur</foreName>
            <surname>Le Meur</surname>
            <initial>A.-F.</initial>
          </persName>
          <persName key="obasco-2006-idm179782147760">
            <foreName>Julia</foreName>
            <surname>Lawall</surname>
            <initial>J.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation</title>
        <loc>Portland, OR, USA</loc>
        <imprint>
          <publisher>
            <orgName>ACM Press</orgName>
          </publisher>
          <dateStruct>
            <month>January</month>
            <year>2002</year>
          </dateStruct>
          <biblScope type="pages">9–18</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid6" type="article" rend="foot" n="footcite:lemeur-al:hosc03">
      <analytic>
        <title level="a">Specialization Scenarios: A Pragmatic Approach to Declaring Program Specialization</title>
        <author>
          <persName key="jacquard-2006-idm390746289088">
            <foreName>Anne-Fleur</foreName>
            <surname>Le Meur</surname>
            <initial>A.-F.</initial>
          </persName>
          <persName key="obasco-2006-idm179782147760">
            <foreName>Julia</foreName>
            <surname>Lawall</surname>
            <initial>J.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="j">Higher-Order and Symbolic Computation</title>
        <imprint>
          <biblScope type="volume">17</biblScope>
          <biblScope type="number">1</biblScope>
          <dateStruct>
            <year>2004</year>
          </dateStruct>
          <biblScope type="pages">47–92</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid17" type="inproceedings" rend="foot" n="footcite:Marlet-Consel-Boinot:pldi99">
      <analytic>
        <title level="a">Efficient Incremental Run-Time Specialization for Free</title>
        <author>
          <persName key="signes-2006-idm424409775728">
            <foreName>Renaud</foreName>
            <surname>Marlet</surname>
            <initial>R.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName>
            <foreName>Philippe</foreName>
            <surname>Boinot</surname>
            <initial>P.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">Proceedings of the ACM SIGPLAN'99 Conference on Programming Language Design and Implementation (PLDI'99)</title>
        <loc>Atlanta, GA, USA</loc>
        <imprint>
          <dateStruct>
            <month>May</month>
            <year>1999</year>
          </dateStruct>
          <biblScope type="pages">281–292</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid9" type="inproceedings" rend="foot" n="footcite:Marlet-Thibault-Consel:ase97">
      <analytic>
        <title level="a">Mapping Software Architectures to Efficient Implementations via Partial Evaluation</title>
        <author>
          <persName key="signes-2006-idm424409775728">
            <foreName>Renaud</foreName>
            <surname>Marlet</surname>
            <initial>R.</initial>
          </persName>
          <persName>
            <foreName>Scott</foreName>
            <surname>Thibault</surname>
            <initial>S.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">Conference on Automated Software Engineering</title>
        <loc>Lake Tahoe, NV, USA</loc>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society</orgName>
          </publisher>
          <dateStruct>
            <month>November</month>
            <year>1997</year>
          </dateStruct>
          <biblScope type="pages">183–192</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid0" type="article" rend="foot" n="footcite:Marlet-Thibault-Consel:jase99">
      <analytic>
        <title level="a">Efficient Implementations of Software Architectures via Partial Evaluation</title>
        <author>
          <persName key="signes-2006-idm424409775728">
            <foreName>Renaud</foreName>
            <surname>Marlet</surname>
            <initial>R.</initial>
          </persName>
          <persName>
            <foreName>Scott</foreName>
            <surname>Thibault</surname>
            <initial>S.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="j">Journal of Automated Software Engineering</title>
        <imprint>
          <biblScope type="volume">6</biblScope>
          <biblScope type="number">4</biblScope>
          <dateStruct>
            <month>October</month>
            <year>1999</year>
          </dateStruct>
          <biblScope type="pages">411–440</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid16" type="article" rend="foot" n="footcite:McNamee-al:tocs2001">
      <analytic>
        <title level="a">Specialization tools and techniques for systematic optimization of system software</title>
        <author>
          <persName>
            <foreName>Dylan</foreName>
            <surname>McNamee</surname>
            <initial>D.</initial>
          </persName>
          <persName>
            <foreName>Jonathan</foreName>
            <surname>Walpole</surname>
            <initial>J.</initial>
          </persName>
          <persName>
            <foreName>Calton</foreName>
            <surname>Pu</surname>
            <initial>C.</initial>
          </persName>
          <persName>
            <foreName>Crispin</foreName>
            <surname>Cowan</surname>
            <initial>C.</initial>
          </persName>
          <persName>
            <foreName>Charles</foreName>
            <surname>Krasic</surname>
            <initial>C.</initial>
          </persName>
          <persName>
            <foreName>Ashvin</foreName>
            <surname>Goel</surname>
            <initial>A.</initial>
          </persName>
          <persName>
            <foreName>Perry</foreName>
            <surname>Wagle</surname>
            <initial>P.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="obasco-2006-idm179782179664">
            <foreName>Gilles</foreName>
            <surname>Muller</surname>
            <initial>G.</initial>
          </persName>
          <persName key="signes-2006-idm424409775728">
            <foreName>Renaud</foreName>
            <surname>Marlet</surname>
            <initial>R.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="j">ACM Transactions on Computer Systems</title>
        <imprint>
          <biblScope type="volume">19</biblScope>
          <biblScope type="number">2</biblScope>
          <dateStruct>
            <month>May</month>
            <year>2001</year>
          </dateStruct>
          <biblScope type="pages">217–251</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>US</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid21" type="article" rend="foot" n="footcite:Medv00a">
      <identifiant type="doi" value="10.1109/32.825767"/>
      <analytic>
        <title level="a">A Classification and Comparison Framework for Software Architecture Description Languages</title>
        <author>
          <persName>
            <foreName>Nenad</foreName>
            <surname>Medvidovic</surname>
            <initial>N.</initial>
          </persName>
          <persName>
            <foreName>Richard N.</foreName>
            <surname>Taylor</surname>
            <initial>R. N.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="j">IEEE Transactions on Software Engineering</title>
        <imprint>
          <biblScope type="volume">26</biblScope>
          <biblScope type="number">1</biblScope>
          <dateStruct>
            <year>2000</year>
          </dateStruct>
          <biblScope type="pages">70–93</biblScope>
          <ref xlink:href="http://dx.doi.org/10.1109/32.825767" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>dx.
          <allowbreak/>doi.
          <allowbreak/>org/
          <allowbreak/>10.
          <allowbreak/>1109/
          <allowbreak/>32.
          <allowbreak/>825767</ref>
        </imprint>
      </monogr>
      <affiliation>
        <country>US</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid10" type="inproceedings" rend="foot" n="footcite:Muller-al:sigops2000">
      <analytic>
        <title level="a">Towards Robust OSes for Appliances: A New Approach Based on Domain-Specific Languages</title>
        <author>
          <persName key="obasco-2006-idm179782179664">
            <foreName>Gilles</foreName>
            <surname>Muller</surname>
            <initial>G.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="signes-2006-idm424409775728">
            <foreName>Renaud</foreName>
            <surname>Marlet</surname>
            <initial>R.</initial>
          </persName>
          <persName>
            <foreName>L.P.</foreName>
            <surname>Barreto</surname>
            <initial>L.</initial>
          </persName>
          <persName>
            <foreName>Fabrice</foreName>
            <surname>Mérillon</surname>
            <initial>F.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810686672">
            <foreName>Laurent</foreName>
            <surname>Réveillère</surname>
            <initial>L.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">Proceedings of the ACM SIGOPS European Workshop 2000 (EW2000)</title>
        <loc>Kolding, Denmark</loc>
        <imprint>
          <publisher>
            <orgName>ACM Press</orgName>
          </publisher>
          <dateStruct>
            <month>September</month>
            <year>2000</year>
          </dateStruct>
          <biblScope type="pages">19-24</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid12" type="inproceedings" rend="foot" n="footcite:Merillon-al:osdi2000">
      <analytic>
        <title level="a">Devil: An IDL for Hardware Programming</title>
        <author>
          <persName>
            <foreName>Fabrice</foreName>
            <surname>Mérillon</surname>
            <initial>F.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810686672">
            <foreName>Laurent</foreName>
            <surname>Réveillère</surname>
            <initial>L.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="signes-2006-idm424409775728">
            <foreName>Renaud</foreName>
            <surname>Marlet</surname>
            <initial>R.</initial>
          </persName>
          <persName key="obasco-2006-idm179782179664">
            <foreName>Gilles</foreName>
            <surname>Muller</surname>
            <initial>G.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">4th Symposium on Operating Systems Design and Implementation (OSDI 2000)</title>
        <loc>San Diego, California</loc>
        <imprint>
          <dateStruct>
            <month>October</month>
            <year>2000</year>
          </dateStruct>
          <biblScope type="pages">17–30</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid11" type="inproceedings" rend="foot" n="footcite:Reveillere-al:ase2000">
      <analytic>
        <title level="a">A DSL Approach to Improve Productivity and Safety in Device Drivers Development</title>
        <author>
          <persName key="phoenix-2006-idm382810686672">
            <foreName>Laurent</foreName>
            <surname>Réveillère</surname>
            <initial>L.</initial>
          </persName>
          <persName>
            <foreName>Fabrice</foreName>
            <surname>Mérillon</surname>
            <initial>F.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="signes-2006-idm424409775728">
            <foreName>Renaud</foreName>
            <surname>Marlet</surname>
            <initial>R.</initial>
          </persName>
          <persName key="obasco-2006-idm179782179664">
            <foreName>Gilles</foreName>
            <surname>Muller</surname>
            <initial>G.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">Proceedings of the 15th IEEE International Conference on Automated Software Engineering (ASE 2000)</title>
        <loc>Grenoble, France</loc>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society Press</orgName>
          </publisher>
          <dateStruct>
            <month>September</month>
            <year>2000</year>
          </dateStruct>
          <biblScope type="pages">101–109</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid13" type="inproceedings" rend="foot" n="footcite:Reveillere-Muller:dsn2001">
      <analytic>
        <title level="a">Improving Driver Robustness: an Evaluation of the Devil Approach</title>
        <author>
          <persName key="phoenix-2006-idm382810686672">
            <foreName>Laurent</foreName>
            <surname>Réveillère</surname>
            <initial>L.</initial>
          </persName>
          <persName key="obasco-2006-idm179782179664">
            <foreName>Gilles</foreName>
            <surname>Muller</surname>
            <initial>G.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">The International Conference on Dependable Systems and Networks</title>
        <loc>Göteborg, Sweden</loc>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society</orgName>
          </publisher>
          <dateStruct>
            <month>July</month>
            <year>2001</year>
          </dateStruct>
          <biblScope type="pages">131–140</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid8" type="inproceedings" rend="foot" n="footcite:Schultz-al:ecoop99">
      <analytic>
        <title level="a">Towards Automatic Specialization of Java Programs</title>
        <author>
          <persName>
            <foreName>U.P.</foreName>
            <surname>Schultz</surname>
            <initial>U.</initial>
          </persName>
          <persName key="obasco-2006-idm179782147760">
            <foreName>Julia</foreName>
            <surname>Lawall</surname>
            <initial>J.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="obasco-2006-idm179782179664">
            <foreName>Gilles</foreName>
            <surname>Muller</surname>
            <initial>G.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">Proceedings of the European Conference on Object-oriented Programming (ECOOP'99)</title>
        <loc>Lisbon, Portugal</loc>
        <title level="s">Lecture Notes in Computer Science</title>
        <imprint>
          <biblScope type="volume">1628</biblScope>
          <dateStruct>
            <month>June</month>
            <year>1999</year>
          </dateStruct>
          <biblScope type="pages">367–390</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid7" type="inproceedings" rend="foot" n="footcite:Schultz-al:ase2000">
      <analytic>
        <title level="a">Specialization Patterns</title>
        <author>
          <persName>
            <foreName>U.P.</foreName>
            <surname>Schultz</surname>
            <initial>U.</initial>
          </persName>
          <persName key="obasco-2006-idm179782147760">
            <foreName>Julia</foreName>
            <surname>Lawall</surname>
            <initial>J.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">Proceedings of the 15th IEEE International Conference on Automated Software Engineering (ASE 2000)</title>
        <loc>Grenoble, France</loc>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society Press</orgName>
          </publisher>
          <dateStruct>
            <month>September</month>
            <year>2000</year>
          </dateStruct>
          <biblScope type="pages">197–208</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid20" type="article" rend="foot" n="footcite:Schultz-al:toplas03">
      <analytic>
        <title level="a">Automatic Program Specialization for Java</title>
        <author>
          <persName>
            <foreName>U.P.</foreName>
            <surname>Schultz</surname>
            <initial>U.</initial>
          </persName>
          <persName key="obasco-2006-idm179782147760">
            <foreName>Julia</foreName>
            <surname>Lawall</surname>
            <initial>J.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="j">ACM Transactions on Programming Languages and Systems</title>
        <imprint>
          <biblScope type="volume">25</biblScope>
          <biblScope type="number">4</biblScope>
          <dateStruct>
            <year>2003</year>
          </dateStruct>
          <biblScope type="pages">452–499</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid19" type="article" rend="foot" n="footcite:Thibault-al:hosc2000">
      <analytic>
        <title level="a">Static and Dynamic Program Compilation by Interpreter Specialization</title>
        <author>
          <persName>
            <foreName>Scott</foreName>
            <surname>Thibault</surname>
            <initial>S.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName key="obasco-2006-idm179782147760">
            <foreName>Julia</foreName>
            <surname>Lawall</surname>
            <initial>J.</initial>
          </persName>
          <persName key="signes-2006-idm424409775728">
            <foreName>Renaud</foreName>
            <surname>Marlet</surname>
            <initial>R.</initial>
          </persName>
          <persName key="obasco-2006-idm179782179664">
            <foreName>Gilles</foreName>
            <surname>Muller</surname>
            <initial>G.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="j">Higher-Order and Symbolic Computation</title>
        <imprint>
          <biblScope type="volume">13</biblScope>
          <biblScope type="number">3</biblScope>
          <dateStruct>
            <month>September</month>
            <year>2000</year>
          </dateStruct>
          <biblScope type="pages">161–178</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2011-bid14" type="article" rend="foot" n="footcite:Thibault-Marlet-Consel:tse99">
      <analytic>
        <title level="a">Domain-Specific Languages: from Design to Implementation – Application to Video Device Drivers Generation</title>
        <author>
          <persName>
            <foreName>Scott</foreName>
            <surname>Thibault</surname>
            <initial>S.</initial>
          </persName>
          <persName key="signes-2006-idm424409775728">
            <foreName>Renaud</foreName>
            <surname>Marlet</surname>
            <initial>R.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="j">IEEE Transactions on Software Engineering</title>
        <imprint>
          <biblScope type="volume">25</biblScope>
          <biblScope type="number">3</biblScope>
          <dateStruct>
            <month>May</month>
            <year>1999</year>
          </dateStruct>
          <biblScope type="pages">363–377</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
  </biblio>
</raweb>
