Stéphane Ducasse

Marcus Denker

Nicolas Anquetil

Damien Cassou

Anne Etien

Damien Pollet

Christophe Demarey

Guillermo Polito

Pavel Krivanek

Clément Béra

Vincent Blondeau

Gustavo Jansen

Souza Santos

Brice Govin

Thibault Raffaillac

Pablo Tesone

Jason Lecerf

Marco Naddeo

Vinicius Klérisson

Da Ribeiro

Paixão

Abdelghani Alidra

Badji Mokhtar

Cedrik Beler

Alexandre Bergel

Ronie Salgado Faila

Peter Uhnak

Julie Jonas

Thibault Arloing

Julien Delplanque

Yann Dubois

Luc Fabresse

Skip Lentz

Maxime Roelandt

Keywords: programming, 2.1.4. -Aspectoriented programming, 2.1.9. -Dynamic languages, 2.5. -Software engineering, 2.5.1. -Software Architecture & Design, 2.5.3. -Empirical Software Engineering, 2.5.4. -Software Maintenance & Evolution, 2.6. -Infrastructure software, 2.6.3. -Virtual machines Health, 2.7. -Medical devices, 5. -Industry of the future, 5.9. -Industrial maintenance, 6.5. -Information systems, 7. -Transport and logistics Software evolution, Maintenance, Program visualization, Program analyses, Meta modelling, Software metrics, Quality models, Object-oriented programming, Reflective programming, Traits, Dynamically typed languages, Dynamic Software Update, Pharo, Moose

RMoD's general vision is defined in two objectives: remodularization and modularity constructs. These two views are the two faces of a same coin: maintenance could be eased with better engineering and analysis tools and programming language constructs could let programmers define more modular applications.

Reengineering and remodularization

While applications must evolve to meet new requirements, few approaches analyze the implications of their original structure (modules, packages, classes) and their transformation to support their evolution. Our research focuses on the remodularization of object-oriented applications. Automated approaches including clustering algorithms are not satisfactory because they often ignore user inputs. Our vision is that we need better approaches to support the transformation of existing software. The reengineering challenge tackled by RMoD is formulated as follows:

How to help remodularize existing software applications?

We are developing analyses and algorithms to remodularize object-oriented applications. This is why we started studying and building tools to support the understanding of applications at the level of packages and modules. This allows us to understand the results of the analyses that we are building.

We seek to create tools to help developers perform large refactoring. How can they keep track of changes in various locations in a system while ensuring integrity of current and new code by uniformally applying new design choices.

Constructs for modular and isolating programming languages

Dynamically-typed programming languages such as JavaScript are getting new attention as illustrated by the large investment of Google in the development of the Chrome V8 JavaScript engine and the development of a new dynamic language DART. This new trend is correlated to the increased adoption of dynamic programming languages for web-application development, as illustrated by Ruby on Rails, PHP and JavaScript. With web applications, users expect applications to be always available and getting updated on the fly. This continuous evolution of application is a real challenge [START_REF] Hicks | Dynamic software updating[END_REF]. Hot software evolution often requires reflective behavior and features. For instance in CLOS and Smalltalk each class modification automatically migrates existing instances on the fly.

At the same time, there is a need for software isolation i.e.,, applications should reliably run co-located with other applications in the same virtual machine with neither confidential information leaks nor vulnerabilities. Indeed, often for economical reasons, web servers run multiple applications on the same virtual machine. Users need confined applications. It is important that [START_REF] Anquetil | Software maintenance seen as a knowledge management issue[END_REF] an application does not access information of other applications running on the same virtual machine and [START_REF] Denker | Runtime Bytecode Transformation for Smalltalk[END_REF] an application authorized to manipulate data cannot pass such authorization or information to other parts of the application that should not get access to it. Static analysis tools have always been confronted to reflection [START_REF] Furr | Profile-guided static typing for dynamic scripting languages[END_REF]. Without a full treatment of reflection, static analysis tools are both incomplete and unsound. Incomplete because some parts of the program may not be included in the application call graph, and unsound because the static analysis does not take into account reflective features [START_REF] Livshits | DynaMine: finding common error patterns by mining software revision histories[END_REF]. In reflective languages such as F-Script, Ruby, Python, Lua, JavaScript, Smalltalk and Java (to a certain extent), it is possible to nearly change any aspect of an application: change objects, change classes dynamically, migrate instances, and even load untrusted code.

Reflection and isolation concerns are a priori antagonistic, pulling language design in two opposite directions. Isolation, on the one hand, pulls towards more static elements and types (e.g.,, ownership types). Reflection, on the other hand, pulls towards fully dynamic behavior. This tension is what makes this a real challenge: As experts in reflective programming, dynamic languages and modular systems, we believe that by working on this important tension we can make a breakthrough and propose innovative solutions in resolving or mitigating this tension. With this endeavor, we believe that we are working on a key challenge that can have an impact on future programming languages. The language construct challenge tackled by RMoD is formulated as follows:

What are the language modularity constructs to support isolation?

In parallel we are continuing our research effort on traits1 by assessing trait scalability and reuse on a large case study and developing a pure trait-based language. In addition, we dedicate efforts to remodularizing a meta-level architecture in the context of the design of an isolating dynamic language. Indeed at the extreme, modules and structural control of reflective features are the first steps towards flexible, dynamic, yet isolating, languages. As a result, we expect to demonstrate that having adequate composable units and scoping units will help the evolution and recomposition of an application.

Research Program

Software Reengineering

Strong coupling among the parts of an application severely hampers its evolution. Therefore, it is crucial to answer the following questions: How to support the substitution of certain parts while limiting the impact on others? How to identify reusable parts? How to modularize an object-oriented application?

Having good classes does not imply a good application layering, absence of cycles between packages and reuse of well-identified parts. Which notion of cohesion makes sense in presence of late-binding and programming frameworks? Indeed, frameworks define a context that can be extended by subclassing or composition: in this case, packages can have a low cohesion without being a problem for evolution. How to obtain algorithms that can be used on real cases? Which criteria should be selected for a given remodularization?

To help us answer these questions, we work on enriching Moose, our reengineering environment, with a new set of analyses [START_REF] Ducasse | Moose: a Collaborative and Extensible Reengineering Environment[END_REF], [START_REF] Ducasse | Using Smalltalk as a Reflective Executable Meta-Language[END_REF]. We decompose our approach in three main and potentially overlapping steps:

1. Tools for understanding applications, 2. Remodularization analyses, 3. Software Quality.

Tools for understanding applications

Context and Problems. We are studying the problems raised by the understanding of applications at a larger level of granularity such as packages or modules. We want to develop a set of conceptual tools to support this understanding.

Some approaches based on Formal Concept Analysis (FCA) [START_REF] Snelting | Reengineering Class Hierarchies using Concept Analysis[END_REF] show that such an analysis can be used to identify modules. However the presented examples are too small and not representative of real code.

Research Agenda.

FCA provides an important approach in software reengineering for software understanding, design anomalies detection and correction, but it suffers from two problems: (i) it produces lattices that must be interpreted by the user according to his/her understanding of the technique and different elements of the graph; and, (ii) the lattice can rapidly become so big that one is overwhelmed by the mass of information and possibilities [START_REF] Anquetil | A Comparison of Graphs of Concept for Reverse Engineering[END_REF].

We look for solutions to help people putting FCA to real use.

Remodularization analyses

Context and Problems. It is a well-known practice to layer applications with bottom layers being more stable than top layers [START_REF] Martin | Agile Software Development. Principles, Patterns, and Practices[END_REF]. Until now, few works have attempted to identify layers in practice: Mudpie [START_REF] Vainsencher | MudPie: layers in the ball of mud[END_REF] is a first cut at identifying cycles between packages as well as package groups potentially representing layers. DSM (dependency structure matrix) [START_REF] Sullivan | The Structure and Value of Modularity in SOftware Design[END_REF], [START_REF] Sangal | Using Dependency Models to Manage Complex Software Architecture[END_REF] seems to be adapted for such a task but there is no serious empirical experience that validates this claim. From the side of remodularization algorithms, many were defined for procedural languages [START_REF] Koschke | Atomic Architectural Component Recovery for Program Understanding and Evolution[END_REF]. However, object-oriented programming languages bring some specific problems linked with late-binding and the fact that a package does not have to be systematically cohesive since it can be an extension of another one [START_REF] Wilde | Maintenance Support for Object-Oriented Programs[END_REF], [START_REF] Dunsmore | Object-Oriented Inspection in the Face of Delocalisation[END_REF].

As we are designing and evaluating algorithms and analyses to remodularize applications, we also need a way to understand and assess the results we are obtaining.

Research Agenda. We work on the following items:

Layer identification. We propose an approach to identify layers based on a semi-automatic classification of package and class interrelationships that they contain. However, taking into account the wish or knowledge of the designer or maintainer should be supported. Cohesion Metric Assessment. We are building a validation framework for cohesion/coupling metrics to determine whether they actually measure what they promise to. We are also compiling a number of traditional metrics for cohesion and coupling quality metrics to evaluate their relevance in a software quality setting.

Software Quality

Research Agenda. Since software quality is fuzzy by definition and a lot of parameters should be taken into account we consider that defining precisely a unique notion of software quality is definitively a Grail in the realm of software engineering. The question is still relevant and important. We work on the two following items:

Quality models. We studied existing quality models and the different options to combine indicatorsoften, software quality models happily combine metrics, but at the price of losing the explicit relationships between the indicator contributions. There is a need to combine the results of one metric over all the software components of a system, and there is also the need to combine different metric results for any software component. Different combination methods are possible that can give very different results. It is therefore important to understand the characteristics of each method.

Bug prevention. Another aspect of software quality is validating or monitoring the source code to avoid the emergence of well known sources of errors and bugs. We work on how to best identify such common errors, by trying to identify earlier markers of possible errors, or by helping identifying common errors that programmers did in the past.

Language Constructs for Modular Design

While the previous axis focuses on how to help remodularizing existing software, this second research axis aims at providing new language constructs to build more flexible and recomposable software. We will build on our work on traits [START_REF] Schärli | Traits: Composable Units of Behavior[END_REF], [START_REF] Ducasse | Traits: A Mechanism for fine-grained Reuse[END_REF] and classboxes [START_REF] Bergel | Classbox/J: Controlling the Scope of Change in Java[END_REF] but also start to work on new areas such as isolation in dynamic languages. We will work on the following points: (1) Traits and (2) Modularization as a support for isolation.

Traits-based program reuse

Context and Problems. Inheritance is well-known and accepted as a mechanism for reuse in object-oriented languages. Unfortunately, due to the coarse granularity of inheritance, it may be difficult to decompose an application into an optimal class hierarchy that maximizes software reuse. Existing schemes based on single inheritance, multiple inheritance, or mixins, all pose numerous problems for reuse.

To overcome these problems, we designed a new composition mechanism called Traits [START_REF] Schärli | Traits: Composable Units of Behavior[END_REF], [START_REF] Ducasse | Traits: A Mechanism for fine-grained Reuse[END_REF]. Traits are pure units of behavior that can be composed to form classes or other traits. The trait composition mechanism is an alternative to multiple or mixin inheritance in which the composer has full control over the trait composition. The result enables more reuse than single inheritance without introducing the drawbacks of multiple or mixin inheritance. Several extensions of the model have been proposed [START_REF] Denier | Traits Programming with AspectJ[END_REF], [START_REF] Quitslund | Java Traits -Improving Opportunities for Reuse[END_REF], [START_REF] Bergel | Stateful Traits[END_REF], [START_REF] Ducasse | User-Changeable Visibility: Resolving Unanticipated Name Clashes in Traits[END_REF] and several type systems were defined [START_REF] Fisher | Statically typed traits[END_REF], [START_REF] Smith | Chai: Typed Traits in Java[END_REF], [START_REF] Reppy | A Foundation for Trait-based Metaprogramming[END_REF], [START_REF] Liquori | FeatherTrait: A Modest Extension of Featherweight Java[END_REF].

Traits are reusable building blocks that can be explicitly composed to share methods across unrelated class hierarchies. In their original form, traits do not contain state and cannot express visibility control for methods. Two extensions, stateful traits and freezable traits, have been proposed to overcome these limitations. However, these extensions are complex both to use for software developers and to implement for language designers.

Research Agenda: Towards a pure trait language. We plan distinct actions: (1) a large application of traits, (2) assessment of the existing trait models and (3) bootstrapping a pure trait language.

• To evaluate the expressiveness of traits, some hierarchies were refactored, showing code reuse [START_REF] Black | Applying Traits to the Smalltalk Collection Hierarchy[END_REF]. However, such large refactorings, while valuable, may not exhibit all possible composition problems, since the hierarchies were previously expressed using single inheritance and following certain patterns. We want to redesign from scratch the collection library of Smalltalk (or part of it). Such a redesign should on the one hand demonstrate the added value of traits on a real large and redesigned library and on the other hand foster new ideas for the bootstrapping of a pure trait-based language.

In particular we want to reconsider the different models proposed (stateless [START_REF] Ducasse | Traits: A Mechanism for fine-grained Reuse[END_REF], stateful [START_REF] Bergel | Stateful Traits and their Formalization[END_REF], and freezable [START_REF] Ducasse | User-Changeable Visibility: Resolving Unanticipated Name Clashes in Traits[END_REF]) and their operators. We will compare these models by (1) implementing a trait-based collection hierarchy, (2) analyzing several existing applications that exhibit the need for traits. Traits may be flattened [START_REF] Nierstrasz | Flattening Traits[END_REF]. This is a fundamental property that confers to traits their simplicity and expressiveness over Eiffel's multiple inheritance. Keeping these aspects is one of our priority in forthcoming enhancements of traits.

• Alternative trait models. This work revisits the problem of adding state and visibility control to traits. Rather than extending the original trait model with additional operations, we use a fundamentally different approach by allowing traits to be lexically nested within other modules. This enables traits to express (shared) state and visibility control by hiding variables or methods in their lexical scope.

Although the traits' "flattening property" no longer holds when they can be lexically nested, the combination of traits with lexical nesting results in a simple and more expressive trait model. We formally specify the operational semantics of this combination. Lexically nested traits are fully implemented in AmbientTalk, where they are used among others in the development of a Morphiclike UI framework. • We want to evaluate how inheritance can be replaced by traits to form a new object model. For this purpose we will design a minimal reflective kernel, inspired first from ObjVlisp [START_REF] Cointe | Metaclasses are First Class: the ObjVlisp Model[END_REF] then from Smalltalk [START_REF] Goldberg | Smalltalk 80: the Interactive Programming Environment[END_REF].

Reconciling Dynamic Languages and Isolation

Context and Problems. More and more applications require dynamic behavior such as modification of their own execution (often implemented using reflective features [START_REF] Kiczales | Efficient Method Dispatch in PCL[END_REF]). For example, F-script allows one to script Cocoa Mac-OS X applications and Lua is used in Adobe Photoshop. Now in addition more and more applications are updated on the fly, potentially loading untrusted or broken code, which may be problematic for the system if the application is not properly isolated. Bytecode checking and static code analysis are used to enable isolation, but such approaches do not really work in presence of dynamic languages and reflective features. Therefore there is a tension between the need for flexibility and isolation.

Research Agenda: Isolation in dynamic and reflective languages. To solve this tension, we will work on Sure, a language where isolation is provided by construction: as an example, if the language does not offer field access and its reflective facilities are controlled, then the possibility to access and modify private data is controlled. In this context, layering and modularizing the meta-level [START_REF] Bracha | Mirrors: design principles for meta-level facilities of object-oriented programming languages[END_REF], as well as controlling the access to reflective features [START_REF] Caromel | Reflections on MOPs, Components, and Java Security[END_REF], [START_REF] Caromel | A security framework for reflective Java applications[END_REF] are important challenges. We plan to:

• Study the isolation abstractions available in erights (http://www.erights.org) [START_REF] Miller | Capability-based Financial Instruments[END_REF], [START_REF] Miller | Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control[END_REF], and Java's class loader strategies [START_REF] Liang | Dynamic Class Loading in the Java Virtual Machine[END_REF], [START_REF] Gong | New security architectural directions for Java[END_REF]. • Categorize the different reflective features of languages such as CLOS [START_REF] Kiczales | The Art of the Metaobject Protocol[END_REF], Python and Smalltalk [START_REF] Rivard | Pour un lien d'instanciation dynamique dans les langages à classes[END_REF] and identify suitable isolation mechanisms and infrastructure [START_REF] Fong | Capabilities as alias control: Secure cooperation in dynamically extensible systems[END_REF]. • Assess different isolation models (access rights, capabilities [START_REF] Saltzer | The Protection of Information in Computer Systems[END_REF]...) and identify the ones adapted to our context as well as different access and right propagation. • Define a language based on -the decomposition and restructuring of the reflective features [START_REF] Bracha | Mirrors: design principles for meta-level facilities of object-oriented programming languages[END_REF],

-the use of encapsulation policies as a basis to restrict the interfaces of the controlled objects [START_REF] Schärli | Object-oriented Encapsulation for Dynamically Typed Languages[END_REF],

-the definition of method modifiers to support controlling encapsulation in the context of dynamic languages.

An open question is whether, instead of providing restricted interfaces, we could use traits to grant additional behavior to specific instances: without trait application, the instances would only exhibit default public behavior, but with additional traits applied, the instances would get extra behavior. We will develop Sure, a modular extension of the reflective kernel of Smalltalk (since it is one of the languages offering the largest set of reflective features such as pointer swapping, class changing, class definition...) [START_REF] Rivard | Pour un lien d'instanciation dynamique dans les langages à classes[END_REF].

Application Domains

Programming Languages and Tools

Many of the results of RMoD are improving programming languages or development tools for such languages.

As such the application domain of these results is as varied as the use of programming languages in general. Pharo, the language that RMoD develops, is used for a very broad range of applications. From pure research experiments to real world industrial use (the Pharo Consortium, http://consortium.pharo.org, has more than 20 company members) Examples are web applications, server backends for mobile applications or even graphical tools and embedded applications

Software Reengineering

Moose is a language-independent environment for reverse and re-engineering complex software systems.

Moose provides a set of services including a common meta-model, metrics evaluation and visualization. As such Moose is used for analysing software systems to support understanding and continous development as well as software quality analysis.

Highlights of the Year

HDR defenses

Anne Etien defended her HDR thesis.

Pharo web for the enterprise

A new book on Pharo.

Guillermo Polito hired as a CNRS engineer

Guillermo Polito a former PhD student in RMod was hired as a CNRS research engineer. This acknolewdges the quality of his research and work. Speculative inlining in just-in-time compilers enables many performance optimizations. However, it also introduces significant complexity. The compiler optimizations themselves, as well as the deoptimization mechanism are complex and error prone. To stabilize our bytecode to bytecode just-in-time compiler, we designed a new approach to validate the correctness of dynamic deoptimization. The approach consists of the symbolic execution of an optimized and an unop-timized bytecode compiled method side by side, deoptimizing the abstract stack at each deoptimization point (where dynamic deoptimization is possible) and comparing the deoptimized and unoptimized abstract stack to detect bugs. The implementation of our approach generated tests for several hundred thousands of methods, which are now available to be run automatically after each commit [START_REF] Bera | Practical Validation of Bytecode to Bytecode JIT Compiler Dynamic Deoptimization[END_REF].

Recording and Replaying System-Specific Conventions.

In other situations, we found that developers sometimes perform sequences of code changes in a systematic way. These sequences consist of small code changes (e.g., create a class, then extract a method to this class), which are applied to groups of related code entities (e.g., some of the methods of a class). We propose to help this task by letting the developer record the sequence of code changes when he first applies it, and then generalize this sequence to apply it in other locations. The evaluation is based on real instances of such sequences that we found in different open source systems. We were able to replay 92% of the examples, which consisted in up to seven code entities modified up to 66 times. We are still working on the approach to allow for (semi-)automatic generalization of the recorded sequence of changes [START_REF] Santos | Recording and Replaying System Specific, Source Code Transformations[END_REF], [START_REF] Santos | System Specific, Source Code Transformations[END_REF].

Test Case Selection in Industry: an Analysis of Issues Related to Static Approaches

Automatic testing constitutes an important part of everyday development practice. But running all these tests may take hours. This is especially true for large systems involving, for example, the deployment of a web server or communication with a database. For this reason, tests are not launched as often as they should be and are mostly run at night. The company wishes to improve its development and testing process by giving to developers rapid feedback after a change. An interesting solution to give developers rapid feedback after a change is to reduce the number of tests to run by identifying only those exercising the piece of code changed. Two main approaches are proposed in the literature: static and dynamic. We evaluate these approaches on three industrial, closed source, cases to understand the strengths and weaknesses of each solution. We also propose a classification of problems that may arise when trying to identify the tests that cover a method. We started a new collaboration with a local company about tools and languages in the context of Blockchain systems. The collaboration started with a 2 month exploration phase involving an engineer at Inria Tech. A postdoc or PhD will start in 2017.

Bilateral Contracts and Grants with Industry

Worldline CIFRE

We are working on improving the testing behaviour of the developers. The PhD started in October 2014 and is ongoing.

Thales CIFRE

We are working on large industrial project rearchitecturization. The PhD started in January 2015 and is ongoing.

Pharo Consortium

The Pharo Consortium was founded in 2012 and is growing constantly. As of end 2016, it has 23 company members, 12 academic partners and 3 sponsoring companies. Inria supports the consortium with one full time engineer starting in 2011. More at http://consortium.pharo.org. This project aims to study the co-evolution between database structure and programs and to propose recommendations to perform required changes on cascade. These programs are either internal to the schema as functions or triggers or external as applications written in Java or Php built on top of the DB. Our intuition is that software engineering techniques can be efficient for such issues. This project also aims to unify the abstract representation of the DB and its relationships with the internal or external program. Provided by a variety of tools, each one presenting a specific kinds of information supporting the task at hand. With Plomo2, we want to invent a new generation tools to navigate and profile programs by combining dynamic information with visualization to improve the development environment.

Partnerships and Cooperations

European Initiatives

Inria Associate Teams Not Involved in an Inria International Labs

Informal International Partners

We are working with the Uqbar team from different argentinian universities. We hired three of the people: Nicolas Passerini(engineer), Esteban Lorenzano (engineer) and Pablo Tesone (PhD).

We are starting to work with Dr. Robert Pergl from the University of Prague. This project aims at facilitating the usage of frameworks and application programming interfaces (APIs) by mining software repositories. Our intuition is that mining reveals how existing projects instantiate these frameworks. By locating concrete framework instantiations in existing projects, we can recommend to developers the concrete procedures for how to use a particular framework for a particular task in a new system. Our project also tackles the challenge of adapting existing systems to new versions of a framework or API by seeking repositories for how other systems adapted to such changes. We plan to integrate recommendations of how to instantiate a framework and adapt to changes directly in the development environment. Those points taken together, considerably distinguish our approach from existing research in the area of framework engineering.

Thanks to this project, a PhD student of Federal University of Uberlândia in Brasil (Klérisson Vinícius Ribeiro da Paixão) did a six months internship in RMod, and prof. Marcelo Almeida Maia (from the same university) visited us for one week. The goals of the collaboration is to provide tools to help software engineer restructure a large software system in an iterative and incremental way with input from both expert architect and advanced tool. The tools consist of: extraction of a model from source code, manipulation of the model to experiment with possible restructuring, architecture evaluation tool, recommendation tool to help the software engineers to define the new structure, and tool to back port the modification to the source code.

Pr. Marco Tulio Valente of Federal University of Minas Gerais (Brazil)visited RMod for one week.

Visits to International Teams

The whole RMod team spent two days in January at the Vrije Universiteit Brussel (Belgium) to discuss with the Software Languages Lab team: Coen De Roover, Elisa Gonzalez Boix, and their students.

5. 1 .

 1 Highlights of the Year 5.1.1. Release of Pharo 5.0 We released a new version Pharo (Pharo 5.0) completly revisited with fundamental changes in the VM (object representation, compiler, ...)

9. 1 .

 1 Regional InitiativesParticipants: Anne Etien, Nicolas Anquetil, Olivier Auverlot, Stéphane Ducasse. From Sept 2016 to Dec. 2018.Lille Nord Europe European Associated Team with the PreCISE research center of Pr. A. Cleve from Namur University (Belgium).

9. 3 . 3 .

 33 Participation in Other International Programs 9.3.3.1. STIC AmSud projects We were involved in two STIC AmSud projects: Participants: Damien Cassou [correspondant], Gustavo Santos [RMoD], Martin Dias [RMoD], David Röthlisberger [UDP -Universidad Diego Portales, Santiago, Chile], Marcelo Almeida Maia [UFU -Federal University of Uberlândia, Brasil], Romain Robbes [Departamento de Ciencias de la Computación (DCC), Universidad de Chile, Santiago, Chile], Martin Monperrus [Spirals]. Project Partners: Inria RMOD, Inria Spirals, DCC Universidad de Chile, Universidad Diego Portale Chile, Federal University of Uberlândia, Brasil.

  Participants: Nicolas Anquetil [correspondant], Anne Etien [RMoD], Gustavo Santos [RMoD], Marco Tulio Valente [UFMG -Federal University of Minas Gerais, Brazil], Alexander Bergel [Departamento de Ciencias de la Computación (DCC), Universidad de Chile, Santiago, Chile], Project Partners: Inria RMOD, DCC Universidad de Chile, Federal University of Minas Gerais, Brazil.

  markup syntax and associated tools to write and generate documentation and books. Pillar is currently used to write several books and other documentation. Two platforms have already been created on top of Pillar: PillarHub and Marina.

	6.2. Moose
	FUNCTIONAL DESCRIPTION
	Moose is an extensive platform for software and data analysis. It offers multiple services ranging from
	importing and parsing data, to modeling, to measuring, querying, mining, and to building interactive and
	visual analysis tools.
	• Participants: Stephane Ducasse, Muhammad Bhatti, Andre Cavalcante Hora, Nicolas Anquetil, Anne
	Etien, Guillaume Larcheveque and Alexandre Bergel
	• Partners: Pleiad -Sensus -Synectique -Université de Berne -USI -Vrije Universiteit Brussel -
	Feenk
	• Contact: Stephane Ducasse
	• URL: http://www.moosetechnology.org
	6.3. Pillar
	KEYWORDS: HTML -LaTeX -HTML5
	FUNCTIONAL DESCRIPTION
	Pillar is a
	5.1.5. Awards
	6. New Software and Platforms
	6.1. Pharo
	KEYWORDS: Live programmation objet -Reflective system
	FUNCTIONAL DESCRIPTION
	The platform Pharo is an open-source Smalltalk-inspired language and environment. It provides a platform for
	innovative development both in industry and research. By providing a stable and small core system, excellent
	developer tools, and maintained releases, Pharo's goal is to be a platform to build and deploy mission critical
	applications, while at the same time continue to evolve. In 2016, we released a new version Pharo (Pharo 5.0)
	completely revisited with fundamental changes in the VM (object representation, compiler, ...)
	• Participants: Marcus Denker, Damien Cassou, Stephane Ducasse, Esteban Lorenzano, Damien
	Pollet, Igor Stasenko, Camillo Bruni, Camille Teruel and Clement Bera
	• Partners: BetaNine -Debris publishing -École des Mines de Douai -HR Works -MAD -Pleiad -
	Sensus -Synectique -Université de Berne -Uqbar foundation Argentina -Vmware -Yesplan
	• Contact: Marcus Denker
	• URL: http://www.pharo.org

• Contact: Damien Cassou • URL: http://www.smalltalkhub.com/#!/~Pier/Pillar 7. New Results 7.1. Practical Validation of Bytecode to Bytecode JIT Compiler Dynamic Deoptimization.

  Lionel Akue, University of Lomé, Togo, from Oct 2016 to Nov 2016 • Julien Delplanque, University of Mons, Belgium, from September 2016 to December 2016.

	9.4. International Research Visitors
	9.4.1. Visits of International Scientists
	• Prof. Serge Demeyer, 2 days
	• Prof. Marcelo Almeida Maia, 1 week, November 2016;
	• Prof. Alain Plantec, 5 days, November 2016;
	• Prof. Alexandre Bergel, 1 week, December 2016;
	• Prof. Marco Tulio Valente, 1 week, December 2016;
	• Eliot Miranda, Cadence,1 week, August 2016;
	• Dr. Andrei Chis, 3 days, Decembrer 2016.
	9.4.1.1. Internships
	• Klérisson Vinícius Ribeiro da Paixão, Federal University of Uberlândia, Uberlândia (MG), Brazil,
	from September, 2015 to July, 2016;
	•

  Stéphane Ducasse and Damien Cassou visited Dr. Robert Pergl's team at Czech Technical University in Prague, one week in April. Anne Etien acted as Program chair for the following international events: IWST16 (International Worshop on SmallTalk Technologies) and VISSOFT 2016 (IEEE Working Conference on Software Visualization): NIER and Tool Track • Stéphane Ducasse acted as Program Chair for ESUG 2016. Anne Etien reviewed manuscripts for the Software Quality Journal • Nicolas Anquetil reviewed manuscripts for the ACM Transactions on Software Engineering and Methodology (TOSEM); Journal of Software: Evolution and Process (JSME); Computers & Operations Research (COR). • Stéphane Ducasse reviewed manuscripts for Information ; Journal of Software: Evolution and Process (JSME); Journal of Science of Computer Programming; Journal of Object Technologies (JOT). • Stéphane Ducasse and Marcus Denker are Moderators for arXiv cs.SE. http://arxiv.org/list/cs.SE/ recent 10.1.4. Invited Talks • Stéphane Ducasse gave a presentation at CITI laboratory Lyon, Diverse Team seminar Inria Rennes, La Sorbonne • Clément Béra gave a presentation "Sista: Speculative inlining, Smalltalk-style", with Eliot Miranda (Cadence Design Systems) at the Stanford EE Computer Systems Colloquium, Stanford University (https://www.youtube.com/watch?v=f4Cvia-HZ-w). 10.1.5. Leadership within the Scientific Community 10.1.6. Scientific Expertise • Anne Etien reviewed several proposals for Jeune Entreprise Innovante and Crédit Impôt Recherche; • Nicolas Anquetil acted as expert to evaluate project proposal for Fondo Nacional de Desarrollo Cientifico y Tecnologico (FONDECYT), Chile; • Marcus Denker reviewed a research proposal for FONDECYT (Chilean National Science and Technology Commission); • Damien Pollet reviewed projects proposal for NWO (Netherlands Organisation for Scientific Research) Veni grant proposal; • Stéphane Ducasse participated to FWO (Belgium) PhD grant panel; • Damien Cassou was a member of the Apps Togo jury, a contest from Ministry of Industry of Togo to encourage innovation in apps development (http://www.republicoftogo.com/Toutes-les-rubriques/ Tech-Web/Voici-les-meilleures-applis-du-moment).

	10. Dissemination 10.1.2.3. Reviewer
	10.1.3. Journal
	10.1. Promoting Scientific Activities 10.1.3.1. Member of the Editorial Boards
	10.1.1. Scientific Events Organisation 10.1.3.2. Reviewer -Reviewing Activities
	Reengineering) 9.4.2.1. Sabbatical programme 10.1.1.1. General Chair, Scientific Chair 10.1.1.2. Member of the Organizing Committees 10.1.2. Scientific Events Selection 10.1.2.1. Chair of Conference Program Committees • 10.1.2.2. Member of the Conference Program Committees • Stéphane Ducasse -International Conference 18th International Conference on Fundamental Approaches to Software Engineering (FASE) 2016. -For health reasons, I declined the PC participation to ICSE 2013, ECOOP 2013, ECOOP 2014, ECOOP 2015 (but I was the workshop chair) ECOOP 2016. -IWST'16 (International Worshop on SmallTalk Technologies). • Anne Etien -DChanges'16 (4th International Workshop on Document Changes: Modeling, Detection, Storage and Visualization); -ME'16 (10th Workshop on Models and Evolution); -Modelwards'16 (4th International Conference on Model-Driven Engineering and Software Development). -IWST'16 (International Worshop on SmallTalk Technologies). • Nicolas Anquetil -ICSOFT-EA'16 (11th International Conference on Software Technologies and Applica-tions); -IWST'16 (International Worshop on SmallTalk Technologies). • Marcus Denker -SANER 2017 (23rd IEEE International Conference on Software Analysis, Evolution, and • 10.1.7. Research Administration
	9.4.2.2. Explorer programme -Meta 2016 (International Workshop, SPLASH 16) 10.2. Teaching -Supervision -Juries
	9.4.2.3. Research Stays Abroad -SLE 2016 (International Conference on Software Language Engineering) 10.2.1. Teaching
	Marcus Denker: Visit PLEIAD DCC University of Chile, Santiago de Chile 04/12-21/12. Visit in the context -DLS 2016 (Dynamic Languages Symposium at SPLASH) Master : C. Demarey, Intégration Continue, 4h, M2, GIS2A5, Polytech-Lille, France of the Inria Associated Team PLOMO2. -IWST'16 (International Worshop on SmallTalk Technologies). Master : C. Demarey, Intégration Continue, 12h, M2, IAGL, Université de Lille 1, France
	• Clément Béra Master: Anne Etien, Metamodelisation for Reverse Engineering, 25h, M2, Montpellier, France
	-ICOOOLPS'16 (11th Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop) Master: Anne Etien, Test et Maintenance, 10h, M2, Polytech-Lille, France

Master: Anne Etien, Test et Maintenance, 14h, M2, Polytech-Lille, France Master : Anne Etien, Système d'information objet, 22h, M1, Polytech-Lille, France

Traits are groups of methods that can be composed orthogonally to simple inheritance. Contrary to mixin, the class has the control of the composition and conflict management.


Fabien Amiot
email: fabien.amiot@mic.dtu.dk

François Hild

Frederic Kanoufi

Jean Paul Roger

Identification of the electro-elastic coupling from full multi-physical fields measured at the micrometer scale

Keywords: numbers: 42.30.-d, 42.25.Hz, 46.80.+j, 68.35.Gy, 68.37.-d, 73.30.+y

à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Introduction

The increasing interest for micro-electro-mechanical systems (MEMS) has raised several issues concerning several specific mechanical phenomena. Decreasing the size of mechanical objects down to the 1-100 micrometer range significantly enhances the surface-driven aspect of the mechanical behavior, so that these objects are used in wide range of sensing applications [1]. The present paper intends to focus on the coupling between electrochemical and mechanical effects, which involves small elastic strains, thus requiring the measurement of vanishingly small strains [2]. This was first achieved on macroscopic samples by several optical methods such as Köster interferometer [3], which was used with a gauge length in the 10-mm range. Electrochemical effects have also been investigated through the mechanical loading they induce on microcantilevers. An investigation of the double-layer region [4] (i.e., no electrochemical reaction) as well as adsorption reactions [5,6,7] and electrodeposition [8] have been carried out using the standard optical lever technique [1]. Using this set-up allows one to demonstrate the phenomenon, but it is not suited to describing the involved mechanical effect. The development of in-situ ellipsometric measurements also allows for the development of comprehensive models describing the optical behavior of noble metal working electrodes in the double-layer regime [9,10]. These models, based on the Gouy-Chapman-Stern theory, have been successfully used to monitor the anion adsorption in the double-layer regime [11], thus providing a description of the electrochemical state of the interface. The electro-elastic coupling has then been monitored, combining the optical lever technique with ellipsometric measurements on a cantilever [12].

However, if the existence of this surface coupling phenomena has been demonstrated, the modeling of the connection between the electrochemical state of an interface and the induced deformation remains an open question [2]. Since one of the main difficulty is to ensure a uniform and well defined loading at the micrometer scale, it is thought that increasing the experimental information amount may lead to a significant modeling improvement, provided the redundancy of the measured quantity is sufficient. This statement is at the origin of the development of identification techniques based on full-field measurements in Solid Mechanics.

A first class of identification techniques allows for the identification of elastic properties using redundant or full-field kinematic data in the typical case where the loading is applied in a well defined manner. A first group, initiated in Ref. [13], is derived from the constitutive equation error [START_REF] Ladevèze | Comparaison de modèles de milieux continus thèse d[END_REF] and has been applied to both dynamic model updating [15] and elastic property or damage field identification [16]. It was also used to get elastic properties by analyzing a heterogeneous test [17]. Based on equilibrium conditions, the virtual fields method has been used to identify homogeneous elastic properties of composites [18,19]. The reciprocity gap [START_REF] Bui | 2e Colloque national de calcul des structures[END_REF] is a specific technique needing both kinematic and static quantities at the same location of the body boundary [START_REF] Bonnet | [END_REF]. Dealing with experiments where the mechanical loading has to be identified represents another class of identification problems.

Starting from the equilibrium gap method [22], one may consider only kinematic measurements, and add some unknowns (describing the loading) in the identification problem. This (inverse) problem is solved, provided that the mechanical behavior remains elastic [23]. Dealing with multi-physical (i.e., coupled) phenomena, an alternative solution consists in enriching the experimental basis with full-field measurements of any complementary information describing the phenomenon under scrutiny. The case where these two fields are combined in a single measured field is hereby considered, thus requiring no additional measurement but a decoupling procedure. The aim of the present paper is to propose the use of phase-modulated interferometric measurements and an electrochemical workstation, presented in Section 2, to have access to the change of a full phase field of the observed object, originating from both the electrochemical state of the interface and the mechanical effect on the observed cantilever. The way these two phenomena are operating is described and modeled in Section 3. The proposed decomposition allows one to distinguish the electrochemically-and mechanically-induced optical phase, and thus to derive simultaneously a description of the charge density field and the electro-elastic coupling through a dedicated identification procedure (Section 4).

Experimental set-up

Nomarski imaging set-up

The interferential microscopy imaging set-up used herein is shown in Fig. 1. A lightemitting diode (LED, λ = 760 nm) illuminates a polarization beam-splitter. The beam reflected by the beam-splitter is polarized at 45 • of the axes of a photo-elastic polarization modulator. The Wollaston prism, whose axes are parallel with those of the modulator, splits the beam into two orthogonally polarized beams at a small angle between each other. These beams are focused upon the sample by an immersion objective lens (18-mm focal length, N.A. = 0.3). After reflection and recombination by the Wollaston prism, the beam goes through the polarization modulator and the polarization beam-splitter. The transmitted beam is finally focused on a CCD array (Dalsa-CA-D1, 256 × 256 pixels, 8 bits). The polarization beam-splitter behaves as crossed linear polarizers mounted at 45 • of the axes of the Wollaston prism and of the polarization modulator.

The interference pattern is obtained as the difference of two topographies of the surface, shifted by the Wollaston prism by a distance d. The Wollaston shear-direction is chosen to be parallel to the cantilever axis, denoted by x, so that the topographies involved in the interference pattern are views of the cantilever shifted along the direction of its larger dimension (see Fig. 2). The distance d is chosen to be almost similar to the cantilever length. The pixel size in the object plane is equal to 0.9 µm. The optical phase map is then retrieved using four integrating buckets, and arises from both the sample topography (i.e., height and slope fields) and the reflection coefficient field of the interface [24].

2.2. Electro-chemical procedure 2.2.1. Sample preparation Figure 3 shows a schematic view of the used fluid cell. It is mainly composed of two polymer parts (PDMS, PolyDiMethylSiloxane). The lower part is used to hold the sample, which is glued on a copper piece thanks to a conducting epoxy resin. The temperature of this copper piece is controlled by Peltier effect modules and a temperature sensor. A clear aperture is made in the upper part, and closed by the immersion objective. The mechanical contact between the objective and the upper PDMS part ensures the fluid cell to be watertight. Another copper part, whose temperature is also controlled by Peltier modules, embraces this upper polymer part. Fluid inlet and outlet allow for a simple modification of the content of the fluid cell.

The fluid cell presented in Fig. 3 is filled with an electrolytic solution, and a gold-coated silica array of 18 cells of 6 micro-objects is sealed in it. The objects under consideration are micro-cantilevers (70 × 20 × 0.84µm), which are made of silica (thickness: 770 nm) obtained by thermal oxydation of a silicon wafer. A titanium (thickness: 20 nm) and a gold (thickness: 50 nm) layer are then sputtered onto the sample. A conducting glue is used to ensure the electrical connection to the gold layer. This microcantilevers cell is used as the working electrode. All the connections are insulated with a thin PDMS layer, to ensure that only the gold surface of the working electrode is in contact with the solution. It has a total area of almost 1cm 2 in constant contact with the electrolytic solution. The counter-electrode is a 250-µm diameter and 15-cm long platinum wire plunging in the fluid cell. The Ag/AgCl reference electrode is made of a silver wire (250-µm in diameter) onto which a silver chloride layer has been electrodeposited by oxidation in a 1M KCl solution. The three electrodes are then connected to a CHI 660A potentiostat (IJCambria, England). After bubbling nitrogen, the fluid cell is then filled with a KCl solution (10 -2 M), prepared from milliQ water. The gold surface is then cleaned electrochemically by performing successive cyclic voltammograms between 0 and 0.8 V at 10 mV/s. Gold is then successively oxidized and reduced, until a stable voltammogram (i.e., after a few cycles) is obtained, thus ensuring a clean and reproducible metallic surface. The fluid cell is then purged and filled again with a 10 -2 M KCl deoxygenated solution.

2.2.2. Electrochemical response of the microcantilevers array Figure 4 shows the cyclic voltammetry at the microcantilevers array. The electrode potential was swept linearly at a scan rate of 2mV/s, during three cycles, between -0.1 and 0.4 V vs. Ag/AgCl. The potential window was chosen so that the electrode processes are not perturbed by any substance or electrode material electrochemical transformation. For potentials less than -0.1 V vs. Ag/AgCl, oxygen reduction may be observed while a peak, presumably related to Au oxidation, is observed for potentials greater than 0.5 V. The reversible system observed at 0.05 V (oxidation) and -0.05 V (reduction) is attributed to the Ti underlayer oxidation. The shape of the voltammogram, in the chosen potential region, is characteristic of a double layer charging process. The integration of the cyclic voltammogram provides the variation of the charge passing through the electrode with the potential.

Phenomena at the origin of the measured optical phase

During the three potential cycles, a phase map is recorded every 0.05-V step, thus providing a set of 61 phase maps, that is a 15 × 111 × 61 phase measurements stack covering the cantilever through the whole experiment. The aim of this section is then to express the phase change as a function of both the deformation of the cantilever and the electrochemical modification of the interface.

Decomposition in electro-chemically induced and mechanically induced optical phase

The interface composition is modified when subjected to a potential change. This property has been used to predict the change of the ellipsometric parameters with the surface charge of these surfaces [9,10]. Paik et al [11] have shown that it is necessary to take into account at least two phenomena if one wants to compute the ellipsometric parameters change of an electrode/electrolyte interface:

• the local change of the refractive index of the solution due to a local concentration shift;

• the complex refractive index change of the metal induced by the free electrons density change at the surface.

If the electrode potential is modified to impose a metal surface charge σ m , then the electrolyte side of the interface yields a surface charge density σ d in a diffuse layer, and specific adsorption of anions (resp., cations) may occur, leading to a surface charge σ - (resp., σ + ). Electrical equilibrium of the interface requires

σ m + σ d + σ -+ σ + = 0 (1)
The Gouy-Chapman theory [25,26,[START_REF] Andelman | Nato ASI and SUSSP conference on "soft condensed matter physics in molecular and cell biology[END_REF] may be used to describe the interface between a monovalent electrolyte solution whose bulk concentration is N 0 (i.e., number of charges per unit volume) and a metallic electrode, assuming the latter to be planar. The diffuse layer charge per unit electrode surface σ d reads

σ d = -8N 0 ǫ w kT sinh e(Φ m -Φ ∞ ) 2kT (2)
where ǫ w is the dielectric constant for water, k Boltzmann constant, T the absolute temperature, e the electron charge, Φ m the electrode (metal) potential and Φ ∞ the remote potential. The concentration distribution for cations N + and anions N -read

N ± = N 0 1 ± γ exp(-x λ D ) 1 ∓ γ exp(-x λ D ) 2 (3)
where the parameter γ is defined by

γ = tanh -e(Φ m -Φ ∞ ) 4kT (4)
and λ D is the Debye length given by

λ 2 D = ǫ w kT 8πe 2 N 0 (5)
From Eq.( 3), it is shown that only a thin layer close to the surface, whose thickness scales as λ D , is significantly modified when charging the electrode. The concentration shift induced in this layer modifies locally the refractive index of the solution, modifying the complex reflection coefficient of the interface, and therefore generating a non-mechanically induced optical phase change. For the present system, λ D ≃ 3 nm. Consequently, the total measured optical phase changeφ is decomposed into a mechanically induced optical phase φ mec and an electro-chemically induced optical phase φ ec

φ = φ mec + φ ec (6)
The combination is assumed to be additive, as long as one term significantly dominates the other one

• The "almost mechanical" case, where the displacement is large compared with λ D ;

• The "almost electro-chemical" case, where λ D is large compared to the displacement.

The two following subsections are intended to relate φ mec and φ ec terms to the surface charge density σ d .

Electro-chemically induced optical phase

One proposes to compute the reflection coefficient of a charged interface for a focused beam in the same manner as Stedman [9,10] and Paik et al [11] derived the ellipsometric parameters for a plane wave impinging on a metal-electrolyte interface. Let us derive refractive index changes of the solution and of the metal for the present case, and use them to describe the link between φ ec and the electro-chemical state of the interface through the complex reflection coefficient change of the surface illuminated with a focused monochromatic beam.

Refractive index of the solution

The surface excess concentrations are deduced from the density profiles

Γ ± = ∞ 0 (N ± -N 0 )dz = N 0 ±4γλ D 1 ∓ γ (7)
As previously discussed [9], one chooses to represent the diffuse layer by a finite one whose thickness is 2λ D . One also considers that the liquid side of the interface is charged by the diffuse layer, as well as by adsorbed ions located at the inner Helmholtz plane. The equivalent densities Ñ+ and Ñare thus defined to ensure the same surface excesses

Ñ+ = N 0 + Γ + + σ + 2λ D = N 0 1 + γ 1 -γ + σ + 2λ D (8) Ñ-= N 0 + Γ -+ σ - 2λ D = N 0 1 -γ 1 + γ + σ - 2λ D (9)
The refractive index n e of the electrolyte layer is then obtained from the Lorentz-Lorenz formula

n e (Φ m -Φ ∞ , σ + , σ -) = M + 2ρ i x i R i M -ρ i x i R i ( 10
)
where M is the mean molar mass of the film, and ρ its mean mass density. The latter requires the molar volume of the components of the film, which are taken from Ref. [START_REF] Yeager | [END_REF].

The molar fractions x i of the different elements composing the film read

x i = Ñi ÑH2O + Ñ+ + Ñ- (11)
for i = {H 2 O, +, -}. The molar refractivities R i of the components of the film are taken from Ref. [29].

Refractive index of the metal

According to Drude's model, and neglecting the contribution of the bound electrons, the complex refractive index n m of the metal is obtained as

n 2 m = 1 - 4πn el e 2 m 1 ω(ω -iβ) ( 12
)
where β is Drude's damping parameter, m the electron mass, ω the frequency of the impinging wave and n el the volume charge density. Decomposing n m into real and imaginary parts

n m = n m (1 + iκ) (13)
and considering both real and imaginary parts of Eq. ( 12) yields

n 2 m (1 -κ 2 ) = 1 -sn el 2n 2 m κ = -s β ω n el ( 14
)
where s is defined by

s = 4πe 2 m 1 ω 2 + β 2 (15)
Solving Eq. ( 14) for the ratio β ω yields

β ω = - 2n 2 m κ 1 -n 2 m (1 -κ 2 ) (16)
The ratio β ω is deduced from ellipsometric measurements. At zero charge, one measures n m = 0.33 κ = -13.12 for a wavelength of 760 nm. Setting (16) into its definition, s is rewritten as

s = 4πe 2 mω 2 (1 -n 2 m (1 -κ 2 )) 2 1 -2n 2 m (1 -κ 2 ) + n 4 m (1 + κ 2 ) 2 (17)
If the surface charge density σ m is changed to σ m + dσ m , the charge density change at the surface reads

dn el = dσ m et ( 18
)
where t is the "thickness" of the metal layer whose charge is modified. One arbitrarily sets t = 1nm, as in Ref. [11]. The new refractive index of the metal layer is described by n ′ m and κ ′ satisfying

n ′2 m (1 -κ ′2 ) = n 2 m (1 -κ 2 ) -s × dn el 2n ′2 m κ ′ = 2n 2 m κ -s β ω dn el (19) n ′ m is thus found by solving 4n ′4 m + n ′2 m [4n 2 m (κ 2 -1) + 4sdn el ] -4n 2 m n 2 m κ 2 -κs β ω dn el -s β ω dn el 2 = 0 ( 20
)
and κ ′ is deduced from

κ ′ = 2n 2 m κ -s β ω dn el 2n ′2 m (21)
3.2.3. Reflection coefficient of the surface The complex reflection coefficients r T E and r T M for TE and TM polarized light are then deduced using Fresnel formula [START_REF] Born | Principles of optics[END_REF] as functions of the surface charge density in the metal σ m and the charge densities for adsorbed anions σ -and cations σ + , modeling the interface with two homogeneous layers whose optical properties are defined as above descibed. The electrochemical contribution to the optical phase field measured with the Nomarski shear-interferometer is then described considering TE and TM polarized beams separately, for a given incidence angle θ. For example,

φ ec (x, y, θ) = φ T M (x, y, θ) -φ T E (x -d, y, θ) (22)
As the image is formed by using the whole objective pupil, the phase change measured after reflection on the sample does not depend on the initial polarization [START_REF] Shatalin | [END_REF], so that the fields φ T M and φ T E are equal. As a consequence, φ ec (x, y, θ) is a measure of the heterogeneous part of the reflection phase change field

φ ec (x, y, θ) = φ T E,T M (x, y, θ) -φ T E,T M (x -d, y, θ) (23)
The exact relationship for the fully illuminated pupil may be difficult to predict accurately since it depends on the numerical aperture and the apodization function of the objective. Therefore, one will consider in the following the function φ T E,T M (x, y, θ e ) = h(σ m (x, y), θ e ) of the metal surface charge density σ m (x, y) and of an apparent incidence angle θ e [32] φ T E,T M (x, y, θ e ) = arg r T E (x, y, θ e ) + r T M (x, y, θ e ) 2 = h(σ m (x, y), θ e )(24)

Figure . 5 shows the change of the phase of the base complex reflection coefficient

r T E +r T M 2
of the considered interface as a function of the electrode surface charge, assuming no specific adsorption (i.e., σ -= σ + = 0), for θ e = 0.3 rad. It is worth noting that the described results are consistent with previously published ellipsometric parameters [11]. Moreover, as outlined in Ref. [11], the obtained phase function does not significantly depend on the arbitrarily chosen "thickness" of the affected metal layer.

where the strain energy term δG e (δS) depends on the mechanical behavior of the cantilever. Let us denote by u(x) the in-plane displacement field of the cantilever surface. The surface modification then reads

δS(x) = bu(x) ( 26
)
where b is the cantilever width. Replacing it in Eq. ( 25), leads to

δG(x) = δG e (x) + δG S (x) = δG e (x) + bu(x) σ 2 m ǫ w ( 27
)
so that the electrochemical term appears as an external force contribution, similar to the work of a shear stress τ (x) in the in-plane displacement u(x)

δG(x) = δG e (x) + bu(x) σ 2 m ǫ w = δG e (x) -bu(x)τ (x) (28)
with

τ (x) = - σ 2 m ǫ w (29)
Since the interface between the gold layer and the solution is much larger than the cantilever surface, one assumes that the modification of the cantilever surface does not induce a significant change in the overall charge density.

Displacement fields basis

To be able to represent the well known localization effets on micro-electrodes [START_REF] Van Bladel | Singular Electromagnetic Fields and Sources[END_REF], one assumes that the cantilever is subjected to a heterogeneous shear-stress field

τ (x) = 1 (x 0 -x) m (30)
where x 0 and m are two parameters describing the stress field when x < 0 . According to the analysis of the system described in Ref. [24], the mechanical term φ mec reads

φ mec (x, y) = 4πn ιλ (v(x, y) -v(x -d, y)) + ∂φ W ∂γ dv dx (x, y) - dv dx (x -d, y) (31)
where v(x) in the out-of-plane displacement field and ∂φ W ∂γ is an experimentally identified coefficient, n the average refractive index of the ambient medium, λ the used wavelength, and ι a scaling coefficient depending on the numerical aperture of the used objective lens [24]. The displacement and cross-section rotation fields are derived as a closed-form solution in Appendix A, thus providing a description of the mechanical phase field φ mec .

Identification

Section 3 provides a possible description of the measured phase field arising from the electro-elastic coupling described in Section 2. Figure 6 shows the measured optical phase recorded along the median line of the cantilever as a function of the loading step. This phase ranges (by definition) from -π to π and is thus subjected to phase jumps. No significant difference has been noted in the phase behavior across the cantilever width, so that the following results are presented for the median (i.e., number 8) line of the cantilever, even though the identification procedures involve all the pixels covering the cantilever (i.e., 15-pixel rows). The aim of this Section is to use the measured phase maps, taking explicitly into account both the electrochemical and mechanical phase terms to propose a modeling of the electro-elastic coupling.

Identification problem

Solving a direct mechanical problem usually consists in finding stress and displacement fields satisfying simultaneously

• kinematic compatibility;

• equilibrium conditions ;

• constitutive law. A global formulation of the purely mechanical identification problem is to find the displacement field U minimizing ϕ 2 (32) that is matching "at best" the measured displacement field (i.e., the kinematic conditions, first term), satisfying equilibrium conditions (second term) as well as the constitutive law (third term) [23]. As outlined by Eqs. ( 6) and [START_REF] Shatalin | [END_REF], the displacement field is not directly accessible, so that one has to modify the function ϕ 2 to use the optical phase instead of displacements, and to take into account the ambivalent nature of the information carried by the measured optical phase:

ϕ 2 = K KA U -U m KA + K SA U -U SA SA + K CE U -U CE CE
• the phase decomposition reads φ mes = φ mec + φ ec • the mechanical component φ mec represents the displacement field, and thus appears in the first term (kinematic conditions) of Eq. ( 32);

• the electrochemical component φ ec is an image of the loading intensity on the cantilever, and thus accounts for the second term (equilibrium conditions). It is obtained as

φ ec (x, E) = h (σ m (x, E)) -h (σ m (x -d, E))
Furthermore, contrary to most of the above cited identification procedures where the last term in Eq. ( 32) involves only the (possibly heterogeneous) mechanical behavior of the material under scrutiny, here one deals with coupled phenomena, thus involving an additional coupling term between the local electrochemical state and the local mechanical loading. For the sake of simplicity, one assumes in the following that the material mechanical behavior is uniform along the cantilever. In order to avoid errors arising from phase jumps, one proposes to formulate the identification problem as finding a minimizer for

η 2 = 1 N p x,y,n χ(x, y, n) 2 (33) = 1 N p x,y,n 1 µ(x, y, n) 2 (φ test (x, y, n) -φ test (x, y, n -1) -φ mes (x, y, n) + φ mes (x, y, n -1)) 2 (34)
where φ mes (x, y, n)φ mes (x, y, n -1) is the measured phase change between two consecutive loading steps, φ test (x, y, n)φ test (x, y, n -1) the phase change estimated from the actual parameters, N p the number of measurement points and µ(x, y, n) 2 the estimated phase change variance at the considered point (see Appendix B). One should underline that φ test (x, y, n) depends on:

• the mechanical loading applied to the overall cantilever at step n (through the φ mec -term);

• the mechanical loading applied to point (x, y) and at step n, through the φ ec -term.

Several assumptions have thus to be made to obtain an admissible phase field basis, that is a basis for phase fields satisfying simultaneously both equilibrium conditions and constitutive law(s). Minimizing the objective function defined by Eq. ( 33) yields then a projection of the measured phase map onto the defined basis, minimizing the first term of Eq. ( 32) (i.e., kinematic conditions ). As the whole working electrode is gold coated (and not only the cantilever under scrutiny), the major difficulty to overcome is then to estimate the local charge-density field (on the cantilever) from global electrical measurements (i.e., on the whole electrode).

Identification as a potential driven process

Let us assume here that the global charge density of the cantilever may be estimated from the potential of the working electrode. As a consequence:

• the local charge density reads σ m (x, E) = D(x) × P (E) Assuming that the cantilever edges are sharp would lead to impose x 0 = L and p ≤ 1 to ensure that the the surface charge density is integrable along the cantilever. The charge density is then singular, which is no longer true if one takes into account a finite edge radius [START_REF] Van Bladel | Singular Electromagnetic Fields and Sources[END_REF]. One then chooses to impose only that x 0 > L, so that the saturation effect due to the edge radius is represented preserving the integrability condition. The minimization of η 2 is then performed, to provide a parameters set suitable for describing the measured phase maps as well as a residual value η 2 min . Even though the solution has been found to be dependent on the initial guess, the best solution sets (for both assumptions) are reported in Table 1. The charge density field is found to be singular with p around 2. The stress-charge density is also found to be non-linear, with an n-exponent around 1.7 for the b-set. Moreover, using the b-set allows one to identify a differential capacity ratio C dc C da = 0.77, meaning that the electric potential is not the suitable state variable to describe the mechanical loading.

• D(x) = cp(x 0 ) (x 0 -x)
This last result is shown by considering the residual map along the median line of the cantilever as a function of the loading step in Fig. 7. This residual is dimensionless as it is the ratio of the phase gap over the expected phase deviation (see Appendix B). The normalized residual is greater than 1 on the cantilever for almost every loading step, meaning that the residual arises from modeling errors instead of measurement uncertainties. The overall error indicator η 2 min is then about 0.2, which is rather high compared to the fact that pixels on the substrate, for which the modeling error vanishes, are also involved. This is a good indication that this first modeling should be improved by enriching the description of the electro-elastic coupling.

Identification as a charge density driven process

The enrichment is achieved by including the charge information Q obtained from the potentiostat by integrating the current going through the whole working electrode and assuming that Q = 0 at the initial instant. The assumptions are:

• the local charge density reads σ m (x, Q) = D(x) × Q
• the presence of the cantilevers on the electrode does not significantly modify the overall electrode charge compared with a standard planar electrode. As a consequence, one sets D(x) = cq(x 0 ) (x 0 -x) p and the constant c q (x 0 ) is defined so that D(x) = 1 when x tends to the field border on the substrate. The function D(x) is then a localization function, relating the local charge density to the uniform charge one would get on a standard planar electrode. This condition then just means that one assumes that this uniform electrode charge density is recovered "far enough" from the cantilever, that is around 30 micrometers from the cantilever base in the present case

• the local shear-stress profile is a continuous function of the charge density, expanded onto a polynomial basis

τ = T t=1 δ t σ t m (35) 4.3.1.
Identified charge density field and stress-charge relationship The minimization of η 2 is then performed for different values for T ranging from 1 to 5, to provide parameter sets representing the measured phase maps. After a standard minimization assuming a linear (T = 1) coupling relationship, the parameters are identified for greater T values using a relaxation algorithm. This has been found to provide stable results with respect to the initial guess for the first minimization. The solution sets are reported in Table 2. The charge density field is found to be singular with p around 3.3 and a charge-density singularity virtually located in front of the cantilever edge ( x 0 L =1.12), highlighting the micro-electrode effect (see Ref. [START_REF] Maus | [END_REF] for instance).

The resulting charge density field along the median line of the cantilever is shown in Fig. 8a. The ratio of the maximum charge density to its average is around 2000, outlining the high charge localization on micro-electrodes. It is worth noting that even if p > 1, the charge density is integrable since x 0 > L. The induced mechanical effect yields a maximum upward displacement of about 100 nm at the end of the cantilever, as shown in figure 8b. This corresponds to a measured phase change mainly arising from the mechanical term, except at the cantilever edge, where the electrochemical term is dominant. Even with a "crude" linear coupling relationship, the overall residual η 2 min is down to 6.33 × 10 -2 . It is worth noting that this is achieved using only 4 parameters compared with the 8 parameters of the b-set defined in Subsection 4.2.

The overall residual slightly decreases by using more terms in the coupling expansion. The resulting coupling relations are shown in Fig. 9. By increasing the number of terms in the coupling relationship expansion, one reveals an inflexion point reached for a charge density of about 250C.m -2 , with a stress saturation for σ m > σ s = 250C.m -2 whereas the low-charge density part is concave. One should outline that this qualitatively agrees with the description derived in Section. 3.3.1, even though the identified exponent for charge densities less than 200C.m -2 is 1.09 to be compared to the 2-exponent deduced in Section 3.3.1. It should be emphasized that the latter strongly depends on the kinematic model used to describe the cantilever behavior (see Eq. ( 26)). It is also worth noting that the existence of an inflexion point in the coupling relation is consistent with a specific anion adsorption, which makes the surface expansion more favorable and which has been found to occur in an almost reversible manner for Au(111) -Cl -systems [35,36,37]. 10 shows the residual map along the median line of the cantilever as a function of the loading step χ(x, 8, n) for a 5-term expansion of the coupling relationship. The normalized phase error is found to remain almost everywhere in the [-1, 1] range, meaning this mainly arises from measurement uncertainties. It should be underlined that the decrease in η 2 when revealing the inflexion point (see Table 2) is small compared with the overall value because the modification only concerns a few loading steps, where the surface charge density reaches σ s . Furthermore, the error pattern close to the loading steps where the electrode potential is 0.4V (that is steps 10, 30 and 50 in Fig. 10) exhibits negative error values during anodic scans and positive values during cathodic scans. This symmetric shape, which is preserved even though the images obtained for an electrode potential of 0.4V (where the current varies very suddenly) are removed, tends to show that further improvements in the mechanical modeling of the observed effects may be achieved when considering partly inelastic stresses.

Residual map Figure

Conclusion

Metal coated micro-cantilevers were utilized as micro-electrodes.

Full-field interferometric measurements were carried out to monitor both the surface composition changes and the cantilever displacement during cyclic voltammetry in the doublelayer region. The scaling of the electro-chemically induced phase with respect to the surface charge density is modeled according to Gouy-Chapman-Stern theory, whereas the relationship between the mechanical effect and the surface charge density is identified thanks to a dedicated formulation of the identification problem. The electro-elastic coupling effect is found to be charge-driven. The charge density field is also found to be singular on the cantilever edge, and the shear-stress vs. charge density is shown to be non-linear, exhibiting an inflexion point that may be the signature of specific anion adsorption.

Appendix A. Displacement fields basis

One assumes a priori that the cantilever is subjected to a heterogeneous shear-stress field

τ (x) = 1 (x 0 -x) m (A.1)
where x 0 and m are two parameters describing the stress field when x < x 0 . The bending moment M f (x) reads

M f (x) = - be 1 2 L x dη (x 0 -η) m = - be 1 2 ln x 0 -x x 0 -L if m = 1 = - be 1 2(m -1) (x 0 -L) 1-m -(x 0 -x) 1-m if m = 1 (A.2)
where L is the cantilever's length. By assuming that the bending stiffness is uniform all along the beam, the rotation and displacement fields are obtained assuming that the beam is described by en Euler-Bernoulli model [START_REF] Timoshenko | Theory of Elasticity[END_REF] with a constant bending stiffness E B I B where E b and I b are the average Young's modulus and quadratic moment, respectively. The cross-section rotation field is obtained as a function of the exponent m by setting dv(0

) dx = 0 dv(x) dx = - be 1 2E b I b (x -x 0 ) ln x -x 0 L -x 0 -x + x 0 ln x 0 x 0 -L if m = 1 = - be 1 2E b I b ln x 0 -x x 0 + x (x 0 -L) if m = 2 = - be 1 4E b I b - 1 x 0 -x + x (x 0 -L) 2 + 1 x 0 if m = 3 = - be 1 2E b I b (m -1) (x 0 -x) -m+2 -x -m+2 0 -m + 2 +x(x 0 -L) -m+1 if m = {1, 2, 3} (A.3)
and the displacement field is obtained by setting v(0) = 0

v(x) = be 1 4E b I b -(x -x 0 ) 2 ln x -x 0 L -x 0 -x 0 (2x -x 0 ) ln x 0 x 0 -L -x(x 0 - 3x 2 ) if m = 1 = - be 1 2E b I b (x -x 0 ) ln x 0 -x x 0 -x 1 - x 2(x 0 -L) if m = 2 = - be 1 4E b I b ln x 0 -x x 0 + 1 2 x x 0 -L 2 + x x 0 if m = 3 = - be 1 2E b I b (m -1)
x -m+3 0 -(x 0x) -m+3 (-m + 2)(-m + 3)

+

x 2 2 (x 0 -L) -m+1x x -m+2 0 -m + 2 if m = {1, 2, 3} (A.4)

Appendix B. Estimation of the measured phase variance

It can be shown [24] that using four integrating buckets and a sinusoidal phase modulation yields four intensity images E p , for p = {1, 2, 3, 4} where J n is the first kind Bessel function of n-th order. The images E p depend on average impinging intensity I 0 , and on cos(φ) and sin(φ) where φ is the optical phase to be measured. Using four independent images provides then enough information to recover three parameters, including φ. For each pixel of the CCD array, the ideal set of Eq. (B.1) is rewritten as a linear system of equations

MP = E (B.2)
where the parameters vector P reads and the images vector

E t = [E 1 , E 2 , E 3 , E 4 ] (B.4)
with (•) t the transpose of (•). The matrix M is built from the modulation parameters and is then independent of the considered point. Let us denote by λ m the given (measured) realization of a Poisson process whose intensity is E p . The solution parameter vector P sol is obtained as the likelihood maximizer, that is as the minimizer of The couple (P 2 , P 3 ) = T A cos(φ sol ) π , T A sin(φ sol ) π is extracted from the parameter vector P, and used as the argument of a standard "atan2" function to provide a less corrupted value of the phase. As a consequence, errors δP on the identified P vector induce a phase bias δφ that relates to δP as tan(δφ) 2 ≃ (δP 3 cos(φ) -δP 2 sin(φ)) 2 (P 2 2 + P so that ǫ depends on the considered point (x, y, n) in the phase maps, and the variance µ(x, y, n) 2 of the difference between two consecutive phase measurements is estimated as µ(x, y, n) 2 = ǫ(x, y, n) 2 + ǫ(x, y, n -1) 2 (B. 19)

L(P) =

Figure 1 .

 1 Figure 1. Schematic view of a Nomarski shear-interferometer with phase modulation.

Figure 2 .

 2 Figure2. Typical interference pattern. The shear direction is parallel to the cantilever direction, and the shear d is almost equal to the cantilever length. The axis system is shifted for the sake of clarity and the origin is set at point O.

Figure 3 .

 3 Figure 3. Schematic view of the used fluid cell.

Figure 4 .

 4 Figure 4. Cyclic voltammetry of the microcantilevers array in a 10 -2 M KCl solution. Number of cycles: 3, scan rate: 2 mV/s, starting potential: -0.1 V vs. Ag/AgCl.

Figure 5 .

 5 Figure 5. Change of the phase of the base complex reflection coefficient rT E +rT M 2 of a Au(111)/KCl interface as a function of the surface charge for θ e = 0.3 rad.

3. 3 .

 3 Mechanically induced optical phase 3.3.1. From Gouy-Chapman theory to a surface shear-stress field Considering that the electrochemical free enthalpy G S is driven by the interactions between the ions in solution and the charges on the electrode, the total free enthalpy variation of a small surface S 0 subjected to a small surface change δS is written as δG = δG e + δG S = δG e (δS) + δS σ 2 m ǫ w

Figure 6 .

 6 Figure 6. Measured phase recorded along the median line of the cantilever as a function of the loading step.

  p and the constant c p (x 0 ) is defined through the normalization condition L 0 D(x)dx = 1, by integrating the localization function over the cantilever length L. • the local shear-stress is a continuous function of the charge density τ = δσ n m • P (E) is alternatively defined in two ways: -a) P (E) = BC d (E -E P ZC ), where C d is the (homogeneous) differential capacity of the surface, B is a multiplicative constant to be identified (both constant along the cycles), and E P ZC the zero-charge potential b) dP (E) = BC da dE during anodic scans, and dP (E) = BC dc dE during cathodic scans, and E P ZC the zero-charge potential for the first scan. This last formulation allows one to account for slight charge leak.

Figure 7 .

 7 Figure 7. Residual map along the median line the cantilever as a function of the loading step χ(x, 8, n) after minimization assuming a potential driven process and the b-set parameters.

Figure 8 .

 8 Figure 8. a) Identified charge density field along the median line of the cantilever as a function of the loading step. b) Identified out-of-plane displacement field along the median line of the cantilever as a function of the loading step.

Figure 9 .

 9 Figure 9. Identified coupling relationship for T ranging from 1 to 5. The curve for T = 2 has been slightly shifted for the sake of clarity.

Figure 10 .

 10 Figure 10. Residual map along the median line of the cantilever as a function of the loading step χ(x, 8, n) after minimization assuming a charge density driven process and a 5-term expansion for the stress-charge density relationship.

E p = T 4 (I 0 +

 40 AJ 0 (ψ) cos(φ))+ T A cos(φ) π ∞ n=1 J 2n (ψ 0 ) 2n [sin(npπ + 2nθ mod )sin(n(p -1)π + 2nθ mod )] 1)(p -1) + (2n + 1)θ mod ) cos( π 2 (2n + 1)p + (2n + 1)θ mod ) (B.1)

4 i=1{ln

 4 (Γ(λ m,i ))ln (Γ(λ i ) -(λ m,iλ i ) ln(λ i ))} (B.5) with respect to the parameter set P λ = MP (B.6)where λ denotes the actual intensity set. The stationarity conditions readg(λ m , P) = M t f (λ) -M t r = 0 (B.7)wheref (λ i ) = ln(λ i ) -Ψ(λ i ) + 1 (B.8) r i = λ m,i λ i (B.9)and Γ(x) is the Gamma-Euler function and Ψ(x) the derivative of ln(Γ(x)) with respect to x. Considering small perturbations from a solution (λ s = E, P s ), a Taylor expansion of g yieldsM t N M(P -P s ) = M t R (B.10)withN i,j = 0 if i = j (B.11) N i,i = df dλ (λ = λ s,i ) + 1 λ s,i (B.12) R i = λ iλ s,i λ s,i(B.13) so that the error on the parameters P is a linear combination of the normalized error on the measured intensities R δP = P -P s = AR (B.14) where A = (M t N M) -1 M t (B.15)

17 )

 17 ) estimator ǫ for δφ is then provided byǫ = tan -1The quantity ǫ depends on (δP 2 ) 2 and (δP 3 ) 2 , which are estimated by (δP k )

Table 1 .

 1 Identified parameters for the different stress-charge relationships assuming a potential driven process.

	Parameter set p	n	x0 L	E P ZC	δ	δ (BC n	θ e	C dc C da residual
					(V / Ag-AgCl)	(u.a.)	(a.u.)	(rad)	η 2 min
	a	2.07 1.37 1.07	-0.02	-2.47 × 10 -6	-4.62	0.47	0.2
	b	1.45 1.71 1.12	0.06	-1.7 × 10 -7	-13.73	0.16 0.77 0.19

d c p (x 0 ))

Table 2 .

 2 Identified parameters for the different stress-charge expansions assuming a charge density driven process.

	Number of terms in the coupling relationship expansion	p	x0 L	θ e (rad)	residual η 2 min
	1	3.41	1.13	0.58	6.33 × 10 -2
	2	3.41	1.13	0.60	6.33 × 10 -2
	3	3.35	1.12	0.43	6.27 × 10 -2
	4	3.32	1.12	0.51	6.27 × 10 -2
	5	3.31	1.12	0.60	6.27 × 10 -2