<?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="2009">
  <identification id="phoenix" isproject="true">
    <shortname>phoenix</shortname>
    <projectName>Programming Language Technology For Communication Services</projectName>
    <domaine-de-recherche>Networks, Systems and Services, Distributed Computing</domaine-de-recherche>
    <theme-de-recherche>Distributed Systems and Services</theme-de-recherche>
    <UR name="Bordeaux"/>
    <moreinfo>
      <p>The Phoenix group is located at the INRIA Bordeaux-Sud Ouest center. Phoenix is an INRIA Project-Team joint with University of Bordeaux and CNRS (LaBRI, UMR 5800).</p>
    </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>INRIA Research Associate (CR), from October 1, 2009</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="obasco-2006-idm179782113584">
      <firstname>Nicolas</firstname>
      <lastname>Loriant</lastname>
      <affiliation>INRIA</affiliation>
      <categoryPro>PostDoc</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>INRIA scholarship, from October 1, 2009, to September 30, 2010</moreinfo>
    </person>
    <person key="phoenix-2006-idm382810669392">
      <firstname>Wilfried</firstname>
      <lastname>Jouve</lastname>
      <affiliation>INRIA</affiliation>
      <categoryPro>PhD</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>INRIA scholarship, PhD defense in April, 2009</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 2, 2006, University of Bordeaux 1</moreinfo>
    </person>
    <person key="phoenix-2006-idm382810661392">
      <firstname>Zoé</firstname>
      <lastname>Drey</lastname>
      <affiliation>EtablissementPrive</affiliation>
      <categoryPro>PhD</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Thales scholarship, from November 2, 2006 to October 31, 2009 / INRIA Research Assistant, from November 1, 2009</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, University of Bordeaux 1</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</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</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>INRIA</affiliation>
      <categoryPro>Technique</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Research Assistant, from October 1, 2009, to January 31, 2009</moreinfo>
    </person>
    <person key="phoenix-2009-idm2957697904">
      <firstname>Quentin</firstname>
      <lastname>Enard</lastname>
      <affiliation>INRIA</affiliation>
      <categoryPro>Technique</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Expert Engineer, from November 1, 2009, to January 31, 2010</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</moreinfo>
    </person>
    <person key="phoenix-2008-idm150882403216">
      <firstname>Alexandre</firstname>
      <lastname>Blanquart</lastname>
      <affiliation>INRIA</affiliation>
      <categoryPro>Technique</categoryPro>
      <research-centre>Bordeaux</research-centre>
      <moreinfo>Associate Engineer, from October 1, 2007</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</moreinfo>
    </person>
  </team>
  <presentation id="uid2">
    <bodyTitle>Overall Objectives</bodyTitle>
    <subsection id="uid3" level="1">
      <bodyTitle>Overall Objectives</bodyTitle>
      <p>The frantic pace of technological advances in the area of multimedia communications, compounded with the effective convergence between telecommunication and computer networks, is opening up
      a host of new functionalities, placing service creation as a fundamental vehicle to bring these changes to end-users.</p>
      <p>This situation has three main consequences: (1) service creation is increasingly becoming a software intensive area; (2) service creation must preserve robustness because communication
      services are heavily relied on; (3) the growing multimedia nature of communication services imposes high-performance requirements on services and underlying layers.</p>
      <p>To explore this research area, the Phoenix research group develops principles, techniques and tools for the development of communication services:</p>
      <simplelist>
        <li id="uid4">
          <p noindent="true">the specification of robust communication services based on innovative Domain-Specific Languages (DSLs),</p>
        </li>
        <li id="uid5">
          <p noindent="true">the study of the layers underlying communication services to improve flexibility and performance,</p>
        </li>
        <li id="uid6">
          <p noindent="true">the application to concrete areas such as pervasive computing or IP telephony to validate our approach.</p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid7" level="1">
      <bodyTitle>Highlights of the year</bodyTitle>
      <p>The main highlight of this year is the 
      <span class="smallcap" align="left">DiaSuite</span>software platform. This development environment dedicated to pervasive computing has been successfully applied to automate a 13,500 square
      meters building, hosting the ENSEIRB (an engineering school) and research groups. The presentation of this development by Blanquart et al. 
      <ref xlink:href="#phoenix-2009-bid0" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>was awarded as “Best demonstration” by the ACM International
      Conference on Pervasive Services. In the context of the HomeSIP project  
      <ref xlink:href="#phoenix-2009-bid1" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, 
      <span class="smallcap" align="left">DiaSuite</span>was also successfully applied for developing a demonstration platform of home automation at France Telecom.</p>
    </subsection>
  </presentation>
  <fondements id="uid8">
    <bodyTitle>Scientific Foundations</bodyTitle>
    <subsection id="uid9" 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="uid10">
          <p noindent="true">Programming language technology: language design and implementation, domain-specific languages, program analysis and program transformation.</p>
        </li>
        <li id="uid11">
          <p noindent="true">Operating Systems and Networking: design, implementation and optimization.</p>
        </li>
        <li id="uid12">
          <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="uid13" 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-2009-bid2" 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="id60089" 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-2009-bid3" 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="id60113" 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-2009-bid4" 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="id60149" 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-2009-bid5" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, 
        <ref xlink:href="#phoenix-2009-bid6" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, 
        <ref xlink:href="#phoenix-2009-bid7" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, 
        <ref xlink:href="#phoenix-2009-bid8" 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="id60242" 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-2009-bid9" 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-2009-bid10" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
      </subsection>
      <subsection id="id60286" 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-2009-bid11" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, 
        <ref xlink:href="#phoenix-2009-bid2" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
      </subsection>
    </subsection>
    <subsection id="uid14" level="1">
      <bodyTitle>Adaptation in Systems Software</bodyTitle>
      <subsection id="id60332" 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-2009-bid12" 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="id60359" 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-2009-bid13" 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-2009-bid14" 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-2009-bid15" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. Mutation analysis were 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-2009-bid16" 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="uid15" 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-2009-bid17" 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-2009-bid17" 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-2009-bid18" 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-2009-bid19" 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-2009-bid20" 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-2009-bid21" 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-2009-bid10" 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-2009-bid22" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
    </subsection>
  </fondements>
  <domaine id="uid16">
    <bodyTitle>Application Domains</bodyTitle>
    <subsection id="uid17" 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 two main application domains are the pervasive computing systems and the telephony services.</p>
    </subsection>
    <subsection id="uid18" level="1">
      <bodyTitle>Pervasive Computing Systems</bodyTitle>
      <p>Pervasive computing systems are being deployed in a rapidly increasing number of areas, including building automation, assisted living, 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="uid19">
          <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="uid20">
          <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="uid21">
          <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="uid22">
          <p noindent="true">Dynamicity. 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="uid23">
          <p noindent="true">Testing. 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="uid24" level="1">
      <bodyTitle>Telephony Services</bodyTitle>
      <p>IP telephony materializes the convergence between telecommunications and computer networks. This convergence is dramatically changing the face of the telecommunications domain moving from
      proprietary, closed platforms to distributed systems based on network protocols. In particular, a telephony platform is based on a client-server model and consists of a 
      <i>signalling server</i>that implements a particular signalling protocol (
      <i>e.g.,</i>the Session Initiation Protocol  
      <ref xlink:href="#phoenix-2009-bid23" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>). A signalling server is able to perform telephony-related
      operations that include resources accessible from the computer network, such as Web resources, databases...This evolution brings a host of new functionalities to the domain of
      telecommunications.</p>
      <p>Such a wide spectrum of functionalities enables Telephony to be customized with respect to preferences, trends and expectations of ever-demanding users. These customizations critically rely
      on a proliferation of telephony services. In fact, introducing new telephony services is facilitated by the open nature of signalling servers, as shown by all kinds of servers in distributed
      systems. However, in the context of telecommunications, such evolutions should lead service programming to be done by non-expert programmers, as opposed to developers certified by telephony
      manufacturers. To make this evolution worse, the existing techniques to program server extensions (
      <i>e.g.,</i>Common Gateway Interface  
      <ref xlink:href="#phoenix-2009-bid24" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>) are rather low level, involves crosscutting expertises (
      <i>e.g.,</i>networking, distributed systems, and operating systems) and requires tedious session management. These shortcomings make the programming of telephony services an error-prone
      process, jeopardizing the robustness of a platform.</p>
    </subsection>
  </domaine>
  <logiciels id="uid25">
    <bodyTitle>Software</bodyTitle>
    <subsection id="uid26" level="1">
      <bodyTitle><span class="smallcap" align="left">DiaSuite</span>: a Development Environment for Pervasive Computing Applications</bodyTitle>
      <participants>
        <person key="phoenix-2007-idm524142903968">
          <firstname>Damien</firstname>
          <lastname>Cassou</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
        <person key="phoenix-2006-idm382810690416">
          <firstname>Charles</firstname>
          <lastname>Consel</lastname>
        </person>
        <person key="phoenix-2007-idm524142897184">
          <firstname>Benjamin</firstname>
          <lastname>Bertran</lastname>
        </person>
        <person key="phoenix-2007-idm524142890416">
          <firstname>Julien</firstname>
          <lastname>Bruneau</lastname>
        </person>
        <person key="phoenix-2006-idm382810664048">
          <firstname>Julien</firstname>
          <lastname>Mercadal</lastname>
        </person>
        <person key="obasco-2006-idm179782113584">
          <firstname>Nicolas</firstname>
          <lastname>Loriant</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="uid27">
          <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="uid28">
          <p noindent="true"><i>Architecturing 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 Architecture Description Language (ADL) layer  
          <ref xlink:href="#phoenix-2009-bid25" 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-2009-bid26" 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="uid29">
          <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="uid30">
          <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="uid31">
          <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, CORBA and SIP. 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="#uid32" location="intern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
      <object id="uid32">
        <table>
          <tr>
            <td>
              <ressource aux="IMG/DevCycle.png" xylemeAttach="1" xlink:href="IMG/DevCycle" 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="id61232" 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="uid33">
            <p noindent="true"><span class="smallcap" align="left">DiaSpec</span>is composed of two layers:</p>
            <simplelist>
              <li id="uid34">
                <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="uid35">
                <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-2009-bid26" 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="uid36">
            <p noindent="true"><span class="smallcap" align="left">DiaGen</span>is the 
            <span class="smallcap" align="left">DiaSpec</span>compiler and runtime, 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 and a simulation target (the Web Services and the Corba targets being currently in
            development).</p>
          </li>
        </simplelist>
      </subsection>
      <subsection id="id61406" level="2">
        <bodyTitle><span class="smallcap" align="left">DiaSim</span>: a Parametrized Simulator for Pervasive Computing Applications</bodyTitle>
        <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="#uid37" location="intern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
        <object id="uid37">
          <table>
            <tr>
              <td>
                <ressource aux="IMG/Diasim.png" xylemeAttach="2" xlink:href="IMG/Diasim" type="float" width="427.0pt" 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>
      </subsection>
    </subsection>
    <subsection id="uid38" level="1">
      <bodyTitle>Pantagruel: a Visual Domain-Specific Language for Ubiquitous Computing</bodyTitle>
      <participants>
        <person key="phoenix-2006-idm382810661392">
          <firstname>Zoé</firstname>
          <lastname>Drey</lastname>
          <moreinfo>correspondent</moreinfo>
        </person>
        <person key="phoenix-2006-idm382810664048">
          <firstname>Julien</firstname>
          <lastname>Mercadal</lastname>
        </person>
        <person key="phoenix-2008-idm150882403216">
          <firstname>Alexandre</firstname>
          <lastname>Blanquart</lastname>
        </person>
        <person key="phoenix-2006-idm382810690416">
          <firstname>Charles</firstname>
          <lastname>Consel</lastname>
        </person>
      </participants>
      <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="#uid39" 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>
      <object id="uid39">
        <table>
          <tr>
            <td>
              <ressource aux="IMG/Pantagruel.png" xylemeAttach="3" xlink:href="IMG/Pantagruel" type="float" width="427.0pt" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" media="WEB"/>
            </td>
          </tr>
        </table>
        <caption>A screenshot of the Pantagruel graphical editor (2)</caption>
      </object>
      <p>See also the web page 
      <ref xlink:href="http://pantagruel.bordeaux.inria.fr" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
      <allowbreak/>pantagruel.
      <allowbreak/>bordeaux.
      <allowbreak/>inria.
      <allowbreak/>fr</ref>.</p>
    </subsection>
  </logiciels>
  <resultats id="uid40">
    <bodyTitle>New Results</bodyTitle>
    <subsection id="uid41" level="1">
      <bodyTitle>A Tool-Based Methodology for Developing Pervasive Computing Applications</bodyTitle>
      <p>Pervasive computing systems are being deployed in a growing number of areas, including building automation, assisted living, and supply chain management. These systems involve a wide range
      of devices and software components, communicate using a variety of protocols, and rely on intricate distributed systems technologies. Besides requiring expertise on underlying technologies,
      developing a pervasive computing application also involves domain-specific architectural knowledge to collect context information, process it and perform actions. Because of the heterogeneity
      of the devices, their combination is often achieved by using ad hoc design and implementation approaches. As a consequence, the resulting platforms are usually closed and limited, preventing
      usage scenarios from evolving and impeding creativity.</p>
      <p>To address this challenge, we have developed a language-based approach 
      <ref xlink:href="#phoenix-2009-bid27" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>for managing the development life-cycle of applications coordinating
      networked entities. Our approach covers the characterization of the environment, the specification of coordination applications, the verification of the environment and its deployment. It is
      carried out in practice by a tool platform, named 
      <span class="smallcap" align="left">DiaSuite</span>that covers the whole cycle of development (from the architectural specification to the deployment). A prominent example area is pervasive
      computing. Our work in this area has been validated with numerous applications for assisted living, building management 
      <ref xlink:href="#phoenix-2009-bid27" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>, and advanced telephony services 
      <ref xlink:href="#phoenix-2009-bid28" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
      <p>Our contributions can be summarized as follows:</p>
      <simplelist>
        <li id="uid42">
          <p noindent="true"><i>A design language.</i>We have introduced 
          <span class="smallcap" align="left">DiaSpec</span>, a design language dedicated to describing a taxonomy of area-specific entities and application architectures. This design language
          provides a conceptual framework to support the development of a pervasive computing system, assigning roles to the stakeholders and providing separation of concerns. 
          <span class="smallcap" align="left">DiaSpec</span>raises the level of knowledge that can be shared and reused by the stakeholders.</p>
        </li>
        <li id="uid43">
          <p noindent="true"><i>A tool-based methodology.</i>We have built 
          <span class="smallcap" align="left">DiaSuite</span>, a suite of tools which, combined with our design language, provides a conceptual framework and support for each phase of the development
          of a pervasive computing system. A 
          <span class="smallcap" align="left">DiaSpec</span>description is compiled by 
          <span class="smallcap" align="left">DiaGen</span>to produce a dedicated high-level programming framework. 
          <span class="smallcap" align="left">DiaSim</span>allows to simulate a pervasive computing application prior to its deployment. A back-end targets a specific distributed systems
          platform.</p>
        </li>
        <li id="uid44">
          <p noindent="true"><i>Validation.</i>We have developed a variety of applications in areas including advanced telecommunications, home/building automation, and healthcare. Our largest case study is a building
          management system involving 6 applications, 35 classes of entities and over 400 entity instances.</p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid45" level="1">
      <bodyTitle>A Taxonomy-Driven Approach to Visually Prototyping Pervasive Computing Applications</bodyTitle>
      <p>Ubiquitous computing environments are physical spaces (e.g. houses) characterized by a wide use of technologies, like mobile devices, sensors, software components. These entities can be
      orchestrated in order to automating some everyday tasks for the inhabitants of such space, relieving them of some routines. Orchestrating entities relies on various information, like
      device-sensed data (e.g. temperature), user settings (e.g. agenda meetings), or computed data (e.g. calculated means).</p>
      <p>One of the challenges addressed by the area of pervasive computing is to provide tools for end-users or novice programmers, so that they can easily program applications on pervasive
      environments like home, hospital, museums, or any building that aim at helping their users' everyday life. To address this challenge, we formalize a development approach 
      <ref xlink:href="#phoenix-2009-bid29" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>that aims at writing high-level specifications of the orchestration
      of networked entities in a pervasive computing environment. This work is based on Pantagruel, a visual domain-specific language.</p>
      <p>The main contributions of this work are the following:</p>
      <simplelist>
        <li id="uid46">
          <p noindent="true"><i>Area-specific approach.</i>We have introduced a novel approach to visual programming of pervasive computing applications that is parameterized with respect to a description of a
          pervasive computing environment. This makes our approach applicable to a range of areas.</p>
        </li>
        <li id="uid47">
          <p noindent="true"><i>Area-specific visual programming.</i>We have extended the sensor-controller-actuator paradigm to allow the programming of the orchestration logic to be driven by an environment
          description. This extended approach eases programming and enables verifications.</p>
        </li>
        <li id="uid48">
          <p noindent="true"><i>Validation.</i>We have implemented a compiler and successfully used it for applications in various pervasive computing areas such as home automation and building management.</p>
        </li>
      </simplelist>
    </subsection>
    <subsection id="uid49" level="1">
      <bodyTitle>A Parameterized Simulator for Pervasive Computing Environments</bodyTitle>
      <p>Pervasive computing applications involve both software and integration concerns, for the constituent networked devices of the pervasive computing environment. This situation is problematic
      for testing 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 cope with widely heterogeneous entities, we have introduced a simulator 
      <ref xlink:href="#phoenix-2009-bid0" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>parameterized with respect to a high-level description of a pervasive
      computing environment. The main contributions of this work are the following:</p>
      <simplelist>
        <li id="uid50">
          <p noindent="true"><i>Generated simulation support.</i>A pervasive computing environment description is used to generate both an emulation layer to execute applications and a simulation programming framework
          to develop simulated entities. To abstract over distributed systems technologies, 
          <span class="smallcap" align="left">DiaSuite</span>follows a layered architecture for the generated programming frameworks. This approach has made it possible to introduce a simulated
          environment as just another technology underlying the programming framework.</p>
        </li>
        <li id="uid51">
          <p noindent="true"><i>Simulation renderer.</i>The 
          <span class="smallcap" align="left">DiaSim</span>simulation renderer enables the developer to visually monitor and debug a pervasive computing system. Once the primitive services are
          simulated, we define simulation scenarios to test the pervasive computing system. A simulation scenario is defined for a given spatial layout of services. It consists of a set of initial
          stimuli and a set of evolution rules for these stimuli. Because of the number of entities involved in a pervasive computing system, a simulation scenario rapidly becomes complicated to
          follow. To circumvent this problem, we have coupled DiaSim with an existing visualization tool: the Siafu open source context simulator  
          <ref xlink:href="#phoenix-2009-bid30" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>. Siafu is parameterized with respect to information
          automatically generated from 
          <span class="smallcap" align="left">DiaSpec</span>declarations.</p>
        </li>
        <li id="uid52">
          <p noindent="true"><i>Hybrid simulation.</i>Our approach makes it possible for the same code to be simulated or executed in the actual environment. We ensure a functional correspondence between a simulated
          environment and an actual one by requiring both implementations to be in conformance with the pervasive computing environment description.</p>
        </li>
        <li id="uid53">
          <p noindent="true"><i>Validation.</i>Our approach has been implemented in a tool called 
          <span class="smallcap" align="left">DiaSim</span>. This tool has been used to simulate different pervasive computing systems, demonstrating the generality of our parameterized approach. In
          particular, 
          <span class="smallcap" align="left">DiaSim</span>has been used for simulating a 13,500 square meters building, hosting the ENSEIRB (an engineering school) and research groups 
          <ref xlink:href="#phoenix-2009-bid0" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
        </li>
      </simplelist>
    </subsection>
  </resultats>
  <contrats id="uid54">
    <bodyTitle>Contracts and Grants with Industry</bodyTitle>
    <subsection id="uid55" level="1">
      <bodyTitle>Designing techniques and tools for developing domain-specific languages – Industrial Fellowship (CIFRE / Thales)</bodyTitle>
      <participants>
        <person key="phoenix-2006-idm382810690416">
          <firstname>Charles</firstname>
          <lastname>Consel</lastname>
        </person>
        <person key="phoenix-2006-idm382810661392">
          <firstname>Zoé</firstname>
          <lastname>Drey</lastname>
        </person>
      </participants>
      <p>The goal of this project is to develop a connection between the domain-specific languages and the model driven engineering. We would like to take profit from methodologies, techniques and
      tools that come from model driven engineering, in order to ease the design and implementation of a domain-specific language (DSL). On another side, the model driven engineering could be
      combined with the DSL techniques to complete the pure-model vision in a software engineering process where modelling concepts do not suffice or are not relevant. This work will be illustrated
      and validated with a concrete case study.</p>
    </subsection>
    <subsection id="uid56" level="1">
      <bodyTitle>Integrating non-functional properties in an Architecture Definition 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="phoenix-2007-idm524142890416">
          <firstname>Julien</firstname>
          <lastname>Bruneau</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="uid57">
          <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="uid58">
          <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="uid59">
          <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.</p>
    </subsection>
    <subsection id="uid60" level="1">
      <bodyTitle>SmartImmo: Towards intelligent and environmentally-friendly buildings (french competitiveness pole)</bodyTitle>
      <participants>
        <person key="phoenix-2006-idm382810690416">
          <firstname>Charles</firstname>
          <lastname>Consel</lastname>
        </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>
      </participants>
      <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).</p>
      <p>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. This
      project is funded by the SCS (Secured Communicating Solutions), a french pole of competitiveness.</p>
    </subsection>
  </contrats>
  <international id="uid61">
    <bodyTitle>Other Grants and Activities</bodyTitle>
    <subsection id="uid62" level="1">
      <bodyTitle>International Collaborations</bodyTitle>
      <p>We have been exchanging visits and publishing articles with the following collaborators.</p>
      <descriptionlist>
        <li id="uid63">
          <p noindent="true">Julia Lawall, DIKU, University of Copenhagen (Denmark, Copenhagen).</p>
        </li>
        <li id="uid64">
          <p noindent="true">Calton Pu, Georgia Institute of Technology (USA, Atlanta).</p>
        </li>
        <li id="uid65">
          <p noindent="true">Pierre Cointe, École des Mines in Nantes (France, Nantes).</p>
        </li>
      </descriptionlist>
    </subsection>
    <subsection id="uid66" level="1">
      <bodyTitle>Visits and Invited Researchers</bodyTitle>
      <p>The Phoenix group has been visited by:</p>
      <simplelist>
        <li id="uid67">
          <p noindent="true">Olivier Danvy (Associate Professor at the University of Aarhus, Denmark), from January 23, 2009 to January 25, 2009;</p>
        </li>
        <li id="uid68">
          <p noindent="true">Pierre-Etienne Moreau (Professor at the École des Mines, Nancy, France), February 6, 2009;</p>
        </li>
        <li id="uid69">
          <p noindent="true">Didier Donsez (Professor at the Université Grenoble 1, France), March 7, 2009;</p>
        </li>
        <li id="uid70">
          <p noindent="true">Roy Campbell (Professor at the University of Illinois in Urbana-Champaign, US) from March 6, 2009 to March 11, 2009;</p>
        </li>
        <li id="uid71">
          <p noindent="true">Walid Taha (Professor at the Rice University in Houston, US), from November 1, 2009 to November 3, 2009;</p>
        </li>
        <li id="uid72">
          <p noindent="true">Julia Lawall (Associate Professor at the University of Copenhagen, Denmark), from December 6, 2009 to December 12, 2009.</p>
        </li>
      </simplelist>
    </subsection>
  </international>
  <diffusion id="uid73">
    <bodyTitle>Dissemination</bodyTitle>
    <subsection id="uid74" level="1">
      <bodyTitle>Scientific Community Participation</bodyTitle>
      <p>Charles Consel has been involved in the following events as:</p>
      <descriptionlist>
        <li id="uid75">
          <p noindent="true">Program Committee member of</p>
          <simplelist>
            <li id="uid76">
              <p noindent="true">ICMT 2009 (International Conference on Model Transformation),</p>
            </li>
            <li id="uid77">
              <p noindent="true">IPTComm 2009 (International Conference on Principles, Systems and Applications of IP Telecommunications),</p>
            </li>
            <li id="uid78">
              <p noindent="true">SLE 2009 (International Conference on Software Language Engineering),</p>
            </li>
            <li id="uid79">
              <p noindent="true">GPCE 2009 (International Conference on Generative Programming and Component Engineering),</p>
            </li>
            <li id="uid80">
              <p noindent="true">NFM 2009 (The First NASA Formal Methods Symposium);</p>
            </li>
          </simplelist>
        </li>
        <li id="uid81">
          <p noindent="true">Guest Editor for the Annals of Telecommunications, Springer;</p>
        </li>
        <li id="uid82">
          <p noindent="true">Member of the scientific commitee on “GDR génie de la programmation du logiciel” (CNRS);</p>
        </li>
        <li id="uid83">
          <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="uid84">
          <p noindent="true">Member of the ANCRE program (“Alliance Nationale sur l'Énergie”).</p>
        </li>
      </descriptionlist>
      <p>Charles Consel has participated in the following thesis defense committees:</p>
      <descriptionlist>
        <li id="uid85">
          <p noindent="true">Caroline Lu, Université de Toulouse/INP, December 14, 2009 (“Robustesse du logiciel embarqué multicouche par une approche réflexive: application à l'automobile”).</p>
        </li>
      </descriptionlist>
    </subsection>
    <subsection id="uid86" level="1">
      <bodyTitle>Teaching</bodyTitle>
      <p>Charles Consel has been teaching Master level courses on:</p>
      <descriptionlist>
        <li id="uid87">
          <p noindent="true">Domain-Specific Languages and Program Analysis;</p>
        </li>
        <li id="uid88">
          <p noindent="true">Telephony over IP (related protocols, the SIP protocol, existing programming interfaces). Students are also offered practical labs on various industrial-strength
          telephony platforms. These labs are supervised by Benjamin Bertran and Julien Bruneau.</p>
        </li>
      </descriptionlist>
      <p>Charles Consel and Damien Cassou are teaching a course on Architecture Description Languages.</p>
    </subsection>
    <subsection id="uid89" level="1">
      <bodyTitle>Presentations and Invitations</bodyTitle>
      <p>Charles Consel gave a number of invited presentations:</p>
      <descriptionlist>
        <li id="uid90">
          <p noindent="true">at Georgia Institue of Technology in July 2009,</p>
        </li>
        <li id="uid91">
          <p noindent="true">at the University of California Los Angeles in July 2009,</p>
        </li>
        <li id="uid92">
          <p noindent="true">at Tsinghua University in Beijing in April 2009.</p>
        </li>
      </descriptionlist>
    </subsection>
    <subsection id="uid93" level="1">
      <bodyTitle>PhD Thesis</bodyTitle>
      <p>One student of the Phoenix group obtained his PhD in 2009:</p>
      <descriptionlist>
        <li id="uid94">
          <p noindent="true">Wilfried Jouve, “Approche déclarative pour la génération de canevas logiciels dédiés à l'informatique ubiquitaire” 
          <ref xlink:href="#phoenix-2009-bid31" location="biblio" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest"/>.</p>
        </li>
      </descriptionlist>
    </subsection>
  </diffusion>
  <biblio id="bibliography" html="bibliography" numero="10" titre="Bibliography">
    <biblStruct id="phoenix-2009-bid40" type="inbook" rend="refer" n="refercite:consel:dagstuhl03-refer" default="NO">
      <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 full="yes">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-2009-bid42" type="article" rend="refer" n="refercite:consel-lawall-lemeur:scp04-refer" default="NO">
      <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 full="yes">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-2009-bid39" type="inproceedings" rend="refer" n="refercite:Consel-Reveillere:ase03-refer" default="NO">
      <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), Montréal, Canada</title>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society Press</orgName>
          </publisher>
          <dateStruct>
            <month full="yes">November</month>
            <year full="yes">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-2009-bid41" type="inbook" rend="refer" n="refercite:consel-reveillere:dagstuhl03-refer" default="NO">
      <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 full="yes">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-2009-bid36" type="inproceedings" rend="refer" n="refercite:DREY:2009:INRIA-00403590:1" default="NO">
      <identifiant type="hal" value="inria-00403590"/>
      <analytic>
        <title level="a">A Taxonomy-Driven Approach to Visually Prototyping Pervasive Computing Applications</title>
        <author>
          <persName key="phoenix-2006-idm382810661392">
            <foreName>Zoé</foreName>
            <surname>Drey</surname>
            <initial>Z.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810664048">
            <foreName>Julien</foreName>
            <surname>Mercadal</surname>
            <initial>J.</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">DSL'09: 1st IFIP Working Conference on Domain-Specific Languages, Royaume-Uni Oxford</title>
        <imprint>
          <biblScope type="volume">5658</biblScope>
          <dateStruct>
            <year full="yes">2009</year>
          </dateStruct>
          <biblScope type="pages">78–99</biblScope>
          <ref xlink:href="http://hal.inria.fr/inria-00403590/en/" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00403590/
          <allowbreak/>en/
          <allowbreak/></ref>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid43" type="article" rend="refer" n="refercite:lemeur-al:hosc03-refer" default="NO">
      <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 full="yes">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-2009-bid38" type="article" rend="refer" n="refercite:McNamee-al:tocs2001-refer" default="NO">
      <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 full="yes">May</month>
            <year full="yes">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-2009-bid37" type="inproceedings" rend="refer" n="refercite:Merillon-al:osdi2000-refer" default="NO">
      <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, San Diego, California</title>
        <imprint>
          <dateStruct>
            <month full="yes">October</month>
            <year full="yes">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 id="phoenix-2009-bid35" type="inproceedings" rend="refer" n="refercite:Thibault-Consel-Muller:srds98-refer" default="NO">
      <analytic>
        <title level="a">Safe and Efficient Active Network Programming</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-idm179782179664">
            <foreName>Gilles</foreName>
            <surname>Muller</surname>
            <initial>G.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">17th IEEE Symposium on Reliable Distributed Systems, West Lafayette, IN</title>
        <imprint>
          <dateStruct>
            <month full="yes">October</month>
            <year full="yes">1998</year>
          </dateStruct>
          <biblScope type="pages">135–143</biblScope>
          <ref xlink:href="http://phoenix.labri.fr/publications/papers/srds98-thibault.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/>srds98-thibault.
          <allowbreak/>ps.
          <allowbreak/>gz</ref>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid44" type="inproceedings" rend="refer" n="refercite:CASSOU:2009:INRIA-00405819:1" default="NO">
      <identifiant type="hal" value="inria-00405819"/>
      <analytic>
        <title level="a">A Generative Programming Approach to Developing Pervasive Computing Systems</title>
        <author>
          <persName key="phoenix-2007-idm524142903968">
            <foreName>Damien</foreName>
            <surname>Cassou</surname>
            <initial>D.</initial>
          </persName>
          <persName key="phoenix-2007-idm524142897184">
            <foreName>Benjamin</foreName>
            <surname>Bertran</surname>
            <initial>B.</initial>
          </persName>
          <persName key="obasco-2006-idm179782113584">
            <foreName>Nicolas</foreName>
            <surname>Loriant</surname>
            <initial>N.</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">GPCE'09: Proceedings of the 8th international ACM SIGPLAN conference on Generative programming and component engineering, Denver USA</title>
        <imprint>
          <publisher>
            <orgName>ACM</orgName>
          </publisher>
          <dateStruct>
            <year full="yes">2009</year>
          </dateStruct>
          <biblScope type="pages">137-146</biblScope>
          <ref xlink:href="http://hal.inria.fr/inria-00405819/en/" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00405819/
          <allowbreak/>en/
          <allowbreak/></ref>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct dedoublkey="5200" id="phoenix-2009-bid31" type="phdthesis" rend="year" n="cite:JOUVE:2009:TEL-00402605:1" default="NO">
      <monogr>
        <title level="m">Approche déclarative pour la génération de canevas logiciels dédiés à l'informatique ubiquitaire</title>
        <author>
          <persName key="phoenix-2006-idm382810669392">
            <foreName>Wilfried</foreName>
            <surname>Jouve</surname>
            <initial>W.</initial>
          </persName>
        </author>
        <imprint>
          <publisher>
            <orgName type="school">Université Sciences et Technologies - Bordeaux I</orgName>
          </publisher>
          <dateStruct>
            <month full="yes">04</month>
            <year full="yes">2009</year>
          </dateStruct>
          <ref xlink:href="http://tel.archives-ouvertes.fr/tel-00402605/en/" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>tel.
          <allowbreak/>archives-ouvertes.
          <allowbreak/>fr/
          <allowbreak/>tel-00402605/
          <allowbreak/>en/
          <allowbreak/></ref>
        </imprint>
      </monogr>
      <note type="typdoc" place="unspecified" anchored="yes">Ph. D. Thesis</note>
    </biblStruct>
    <biblStruct dedoublkey="2581" id="phoenix-2009-bid28" type="inproceedings" rend="year" n="cite:BERTRAN:2009:INRIA-00406248:1" default="NO">
      <identifiant type="hal" value="inria-00406248"/>
      <analytic>
        <title level="a">A SIP-based home Automation Platform: an experimental study</title>
        <author>
          <persName key="phoenix-2007-idm524142897184">
            <foreName>Benjamin</foreName>
            <surname>Bertran</surname>
            <initial>B.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
          <persName>
            <foreName>Patrice</foreName>
            <surname>Kadionik</surname>
            <initial>P.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <title level="m">ICIN'09: 13th International Conference on Intelligence in Service delivery Networks, France Bordeaux</title>
        <imprint>
          <publisher>
            <orgName>IEEE</orgName>
          </publisher>
          <dateStruct>
            <year full="yes">2009</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/inria-00406248/en/" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00406248/
          <allowbreak/>en/
          <allowbreak/></ref>
        </imprint>
        <meeting id="cid287497">
          <title>International Conference on Intelligence in Service delivery Networks</title>
          <num>13</num>
          <abbr type="sigle">ICIN</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    <biblStruct dedoublkey="3064" id="phoenix-2009-bid32" type="inproceedings" rend="year" n="cite:BRUNEAU:2009:INRIA-00403421:1" default="NO">
      <identifiant type="hal" value="inria-00403421"/>
      <analytic>
        <title level="a">DiaSim: A Parameterized Simulator for Pervasive Computing Applications</title>
        <author>
          <persName key="phoenix-2007-idm524142890416">
            <foreName>Julien</foreName>
            <surname>Bruneau</surname>
            <initial>J.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810669392">
            <foreName>Wilfried</foreName>
            <surname>Jouve</surname>
            <initial>W.</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">Mobiquitous'09: 6th International Conference on Mobile and Ubiquitous Systems: Computing, Networking and Services, Canada Toronto</title>
        <imprint>
          <publisher>
            <orgName>IEEE</orgName>
          </publisher>
          <dateStruct>
            <year full="yes">2009</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/inria-00403421/en/" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00403421/
          <allowbreak/>en/
          <allowbreak/></ref>
        </imprint>
        <meeting id="cid292393">
          <title>International Conference on Mobile and Ubiquitous Systems: Computing, Networking and Services</title>
          <num>6</num>
          <abbr type="sigle">Mobiquitous</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    <biblStruct dedoublkey="2316" id="phoenix-2009-bid27" type="inproceedings" rend="year" n="cite:CASSOU:2009:INRIA-00405819:1" default="NO">
      <identifiant type="hal" value="inria-00405819"/>
      <analytic>
        <title level="a">A Generative Programming Approach to Developing Pervasive Computing Systems</title>
        <author>
          <persName key="phoenix-2007-idm524142903968">
            <foreName>Damien</foreName>
            <surname>Cassou</surname>
            <initial>D.</initial>
          </persName>
          <persName key="phoenix-2007-idm524142897184">
            <foreName>Benjamin</foreName>
            <surname>Bertran</surname>
            <initial>B.</initial>
          </persName>
          <persName key="obasco-2006-idm179782113584">
            <foreName>Nicolas</foreName>
            <surname>Loriant</surname>
            <initial>N.</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">GPCE'09: Proceedings of the 8th international conference on Generative programming and component engineering, États-Unis d'Amérique Denver, CO</title>
        <imprint>
          <publisher>
            <orgName>ACM</orgName>
          </publisher>
          <dateStruct>
            <year full="yes">2009</year>
          </dateStruct>
          <biblScope type="pages">137-146</biblScope>
          <ref xlink:href="http://hal.inria.fr/inria-00405819/en/" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00405819/
          <allowbreak/>en/
          <allowbreak/></ref>
        </imprint>
        <meeting id="cid283018">
          <title>International Conference on Generative Programming and Component Engineering</title>
          <num>8</num>
          <abbr type="sigle">GPCE</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    <biblStruct dedoublkey="3631" id="phoenix-2009-bid33" type="inproceedings" rend="year" n="cite:DOUENCE:2009:INRIA-00403417:1" default="NO">
      <identifiant type="hal" value="inria-00403417"/>
      <analytic>
        <title level="a">Lazy Composition of Representations in Java</title>
        <author>
          <persName key="obasco-2006-idm179782187632">
            <foreName>Rémi</foreName>
            <surname>Douence</surname>
            <initial>R.</initial>
          </persName>
          <persName>
            <foreName>Xavier</foreName>
            <surname>Lorca</surname>
            <initial>X.</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">SC'09: International Conference on Software Composition, France Lille</title>
        <imprint>
          <biblScope type="volume">5634</biblScope>
          <publisher>
            <orgName>Springer Verlag</orgName>
          </publisher>
          <dateStruct>
            <year full="yes">2009</year>
          </dateStruct>
          <biblScope type="pages">55-71</biblScope>
          <ref xlink:href="http://hal.inria.fr/inria-00403417/en/" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00403417/
          <allowbreak/>en/
          <allowbreak/></ref>
        </imprint>
        <meeting id="cid300436">
          <title>International Conference on Software Composition</title>
          <num>8</num>
          <abbr type="sigle">SC</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    <biblStruct dedoublkey="2619" id="phoenix-2009-bid29" type="inproceedings" rend="year" n="cite:DREY:2009:INRIA-00403590:1" default="NO">
      <identifiant type="hal" value="inria-00403590"/>
      <analytic>
        <title level="a">A Taxonomy-Driven Approach to Visually Prototyping Pervasive Computing Applications</title>
        <author>
          <persName key="phoenix-2006-idm382810661392">
            <foreName>Zoé</foreName>
            <surname>Drey</surname>
            <initial>Z.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810664048">
            <foreName>Julien</foreName>
            <surname>Mercadal</surname>
            <initial>J.</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">DSL'09: 1st IFIP Working Conference on Domain-Specific Languages, Royaume-Uni Oxford</title>
        <imprint>
          <biblScope type="volume">5658</biblScope>
          <dateStruct>
            <year full="yes">2009</year>
          </dateStruct>
          <biblScope type="pages">78-99</biblScope>
          <ref xlink:href="http://hal.inria.fr/inria-00403590/en/" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00403590/
          <allowbreak/>en/
          <allowbreak/></ref>
        </imprint>
        <meeting id="cid623989">
          <title>IFIP Working Conference on Domain-Specific Languages</title>
          <num>1</num>
          <abbr type="sigle"/>
        </meeting>
      </monogr>
    </biblStruct>
    <biblStruct dedoublkey="4355" id="phoenix-2009-bid34" type="inproceedings" rend="year" n="cite:DUCASSE:2009:INRIA-00403568:1" default="NO">
      <identifiant type="hal" value="inria-00403568"/>
      <analytic>
        <title level="a">Reusing and Composing Tests with Traits</title>
        <author>
          <persName key="adam-2007-idm398498359840">
            <foreName>Stéphane</foreName>
            <surname>Ducasse</surname>
            <initial>S.</initial>
          </persName>
          <persName key="triskell-2006-idm147024625968">
            <foreName>Damien</foreName>
            <surname>Pollet</surname>
            <initial>D.</initial>
          </persName>
          <persName key="adam-2008-idm431951148992">
            <foreName>Alexandre</foreName>
            <surname>Bergel</surname>
            <initial>A.</initial>
          </persName>
          <persName key="phoenix-2007-idm524142903968">
            <foreName>Damien</foreName>
            <surname>Cassou</surname>
            <initial>D.</initial>
          </persName>
        </author>
      </analytic>
      <monogr x-international-audience="yes" x-proceedings="yes">
        <title level="m">TOOLS-EUROPE'09: 47th International Conference on Objects, Components, Models and Patterns, États-Unis d'Amérique New York</title>
        <imprint>
          <biblScope type="volume">33</biblScope>
          <publisher>
            <orgName>Springer</orgName>
          </publisher>
          <dateStruct>
            <year full="yes">2009</year>
          </dateStruct>
          <biblScope type="pages">252-271</biblScope>
          <ref xlink:href="http://hal.inria.fr/inria-00403568/en/" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00403568/
          <allowbreak/>en/
          <allowbreak/></ref>
        </imprint>
        <meeting id="cid294144">
          <title>International Conference on Objects, Components, Models and Patterns</title>
          <num>47</num>
          <abbr type="sigle">TOOLS-EUROPE</abbr>
        </meeting>
      </monogr>
    </biblStruct>
    <biblStruct dedoublkey="6002" id="phoenix-2009-bid0" type="unpublished" rend="year" n="cite:JULIEN:2009:INRIA-00412564:1" default="NO">
      <identifiant type="hal" value="inria-00412564"/>
      <monogr>
        <title level="m">A Parametrized Simulator for Pervasive Computing Applications</title>
        <author>
          <persName key="phoenix-2007-idm524142890416">
            <foreName>Julien</foreName>
            <surname>Bruneau</surname>
            <initial>J.</initial>
          </persName>
          <persName key="phoenix-2008-idm150882403216">
            <foreName>Alexandre</foreName>
            <surname>Blanquart</surname>
            <initial>A.</initial>
          </persName>
          <persName key="obasco-2006-idm179782113584">
            <foreName>Nicolas</foreName>
            <surname>Loriant</surname>
            <initial>N.</initial>
          </persName>
          <persName key="phoenix-2006-idm382810690416">
            <foreName>Charles</foreName>
            <surname>Consel</surname>
            <initial>C.</initial>
          </persName>
        </author>
        <imprint>
          <dateStruct>
            <year full="yes">2009</year>
          </dateStruct>
          <ref xlink:href="http://hal.inria.fr/inria-00412564/en/" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>hal.
          <allowbreak/>inria.
          <allowbreak/>fr/
          <allowbreak/>inria-00412564/
          <allowbreak/>en/
          <allowbreak/></ref>
        </imprint>
      </monogr>
      <note type="bnote" place="unspecified" anchored="yes">Demonstration at ICPS'09</note>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid4" type="inproceedings" rend="foot" n="footcite:Boinot-al:ase2000" default="NO">
      <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), Grenoble, France</title>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society Press</orgName>
          </publisher>
          <dateStruct>
            <month full="yes">September</month>
            <year full="yes">2000</year>
          </dateStruct>
          <biblScope type="pages">111–119</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid24" type="misc" rend="foot" n="footcite:cgi-ref" default="NO">
      <monogr>
        <title level="m">CGI: The Common Gateway Interface</title>
        <imprint>
          <dateStruct>
            <year full="yes">1993</year>
          </dateStruct>
          <ref xlink:href="http://www.w3.org/CGI/" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>www.
          <allowbreak/>w3.
          <allowbreak/>org/
          <allowbreak/>CGI/
          <allowbreak/></ref>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid20" type="article" rend="foot" n="footcite:Chirokoff-Consel:hosc99" default="NO">
      <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 full="yes">December</month>
            <year full="yes">1999</year>
          </dateStruct>
          <biblScope type="pages">309–335</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid17" type="article" rend="foot" n="footcite:Consel-Lawall-Lemeur:scp04" default="NO">
      <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 full="yes">2004</year>
          </dateStruct>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid3" type="inproceedings" rend="foot" n="footcite:Consel-Marlet:plilp98" default="NO">
      <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, Pisa, Italy</title>
        <title level="s">Lecture Notes in Computer Science</title>
        <imprint>
          <biblScope type="volume">1490</biblScope>
          <dateStruct>
            <month full="yes">September</month>
            <year full="yes">1998</year>
          </dateStruct>
          <biblScope type="pages">170–194</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid26" type="article" rend="foot" n="footcite:Dey01b" default="NO">
      <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 full="yes">2001</year>
          </dateStruct>
          <biblScope type="pages">97–166</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>US</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid1" type="misc" rend="foot" n="footcite:homesip-ref" default="NO">
      <monogr>
        <title level="m">HomeSip Project: Using the SIP Protocol for Home Automation and M2M</title>
        <imprint>
          <dateStruct>
            <year full="yes">2006</year>
          </dateStruct>
          <ref xlink:href="http://www.enseirb.fr/cosynux/HomeSIP" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>www.
          <allowbreak/>enseirb.
          <allowbreak/>fr/
          <allowbreak/>cosynux/
          <allowbreak/>HomeSIP</ref>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid23" type="misc" rend="foot" n="footcite:sip-rfc" default="NO">
      <monogr>
        <title level="m">Session Initiation Protocol (SIP)</title>
        <imprint>
          <dateStruct>
            <month full="yes">March</month>
            <year full="yes">2001</year>
          </dateStruct>
        </imprint>
      </monogr>
      <note type="bnote" place="unspecified" anchored="yes">Request for Comments 3261</note>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid7" type="inproceedings" rend="foot" n="footcite:Lemeur-al:cd02" default="NO">
      <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, Berlin, Germany</title>
        <imprint>
          <dateStruct>
            <month full="yes">June</month>
            <year full="yes">2002</year>
          </dateStruct>
          <biblScope type="pages">1–14</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid5" type="inproceedings" rend="foot" n="footcite:Lemeur-Consel:splc-pla2000" default="NO">
      <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, Denver, Colorado</title>
        <imprint>
          <dateStruct>
            <month full="yes">August</month>
            <year full="yes">2000</year>
          </dateStruct>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid6" type="inproceedings" rend="foot" n="footcite:Lemeur-al:pepm02" default="NO">
      <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, Portland, OR, USA</title>
        <imprint>
          <publisher>
            <orgName>ACM Press</orgName>
          </publisher>
          <dateStruct>
            <month full="yes">January</month>
            <year full="yes">2002</year>
          </dateStruct>
          <biblScope type="pages">9–18</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid8" type="article" rend="foot" n="footcite:lemeur-al:hosc03" default="NO">
      <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 full="yes">2004</year>
          </dateStruct>
          <biblScope type="pages">47–92</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid19" type="inproceedings" rend="foot" n="footcite:Marlet-Consel-Boinot:pldi99" default="NO">
      <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), Atlanta, GA, USA</title>
        <imprint>
          <dateStruct>
            <month full="yes">May</month>
            <year full="yes">1999</year>
          </dateStruct>
          <biblScope type="pages">281–292</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid11" type="inproceedings" rend="foot" n="footcite:Marlet-Thibault-Consel:ase97" default="NO">
      <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, Lake Tahoe, NV, USA</title>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society</orgName>
          </publisher>
          <dateStruct>
            <month full="yes">November</month>
            <year full="yes">1997</year>
          </dateStruct>
          <biblScope type="pages">183–192</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid2" type="article" rend="foot" n="footcite:Marlet-Thibault-Consel:jase99" default="NO">
      <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 full="yes">October</month>
            <year full="yes">1999</year>
          </dateStruct>
          <biblScope type="pages">411–440</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid30" type="inproceedings" rend="foot" n="footcite:siafu" default="NO">
      <identifiant type="doi" value="10.1109/MOBIQ.2006.340388"/>
      <analytic>
        <title level="a">A Generic Large Scale Simulator for Ubiquitous Computing</title>
        <author>
          <persName>
            <foreName>M.</foreName>
            <surname>Martin</surname>
            <initial>M.</initial>
          </persName>
          <persName>
            <foreName>P.</foreName>
            <surname>Nurmi</surname>
            <initial>P.</initial>
          </persName>
        </author>
      </analytic>
      <monogr>
        <title level="m">Third Annual International Conference on Mobile and Ubiquitous Systems: Networking &amp; Services, 2006 (MobiQuitous 2006), San Jose, California, USA</title>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society</orgName>
          </publisher>
          <dateStruct>
            <month full="yes">July</month>
            <year full="yes">2006</year>
          </dateStruct>
          <ref xlink:href="http://dx.doi.org/10.1109/MOBIQ.2006.340388" location="extern" xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest">http://
          <allowbreak/>dx.
          <allowbreak/>doi.
          <allowbreak/>org/
          <allowbreak/>10.
          <allowbreak/>1109/
          <allowbreak/>MOBIQ.
          <allowbreak/>2006.
          <allowbreak/>340388</ref>
        </imprint>
      </monogr>
      <affiliation>
        <country>DE</country>
        <country>FI</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid18" type="article" rend="foot" n="footcite:McNamee-al:tocs2001" default="NO">
      <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 full="yes">May</month>
            <year full="yes">2001</year>
          </dateStruct>
          <biblScope type="pages">217–251</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>US</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid25" type="article" rend="foot" n="footcite:Medv00a" default="NO">
      <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 full="yes">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-2009-bid12" type="inproceedings" rend="foot" n="footcite:Muller-al:sigops2000" default="NO">
      <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), Kolding, Denmark</title>
        <imprint>
          <publisher>
            <orgName>ACM Press</orgName>
          </publisher>
          <dateStruct>
            <month full="yes">September</month>
            <year full="yes">2000</year>
          </dateStruct>
          <biblScope type="pages">19-24</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid14" type="inproceedings" rend="foot" n="footcite:Merillon-al:osdi2000" default="NO">
      <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), San Diego, California</title>
        <imprint>
          <dateStruct>
            <month full="yes">October</month>
            <year full="yes">2000</year>
          </dateStruct>
          <biblScope type="pages">17–30</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid13" type="inproceedings" rend="foot" n="footcite:Reveillere-al:ase2000" default="NO">
      <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), Grenoble, France</title>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society Press</orgName>
          </publisher>
          <dateStruct>
            <month full="yes">September</month>
            <year full="yes">2000</year>
          </dateStruct>
          <biblScope type="pages">101–109</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid15" type="inproceedings" rend="foot" n="footcite:Reveillere-Muller:dsn2001" default="NO">
      <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, Göteborg, Sweden</title>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society</orgName>
          </publisher>
          <dateStruct>
            <month full="yes">July</month>
            <year full="yes">2001</year>
          </dateStruct>
          <biblScope type="pages">131–140</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid10" type="inproceedings" rend="foot" n="footcite:Schultz-al:ecoop99" default="NO">
      <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), Lisbon, Portugal</title>
        <title level="s">Lecture Notes in Computer Science</title>
        <imprint>
          <biblScope type="volume">1628</biblScope>
          <dateStruct>
            <month full="yes">June</month>
            <year full="yes">1999</year>
          </dateStruct>
          <biblScope type="pages">367–390</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid9" type="inproceedings" rend="foot" n="footcite:Schultz-al:ase2000" default="NO">
      <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), Grenoble, France</title>
        <imprint>
          <publisher>
            <orgName>IEEE Computer Society Press</orgName>
          </publisher>
          <dateStruct>
            <month full="yes">September</month>
            <year full="yes">2000</year>
          </dateStruct>
          <biblScope type="pages">197–208</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid22" type="article" rend="foot" n="footcite:Schultz-al:toplas03" default="NO">
      <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 full="yes">2003</year>
          </dateStruct>
          <biblScope type="pages">452–499</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid21" type="article" rend="foot" n="footcite:Thibault-al:hosc2000" default="NO">
      <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 full="yes">September</month>
            <year full="yes">2000</year>
          </dateStruct>
          <biblScope type="pages">161–178</biblScope>
        </imprint>
      </monogr>
      <affiliation>
        <country>DK</country>
      </affiliation>
    </biblStruct>
    <biblStruct id="phoenix-2009-bid16" type="article" rend="foot" n="footcite:Thibault-Marlet-Consel:tse99" default="NO">
      <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 full="yes">May</month>
            <year full="yes">1999</year>
          </dateStruct>
          <biblScope type="pages">363–377</biblScope>
        </imprint>
      </monogr>
    </biblStruct>
  </biblio>
</raweb>
