PhD Defense: “Cooperative communications with Wireless Body Area Networks for motion capture”, by Arturo Jimenez Guizar, on 27th September

The defense will take place on Tuesday 27th September at 10:00 in the Chappe amphitheatre, Chappe Building, INSA Lyon.

It will be in French with slides in English



JULIEN-VERGONJANNE Anne, Limoges University
BERDER Olivier, Rennes 1 University

President of the jury

LE RUYET Didier, Conservatoire National des Arts et Métiers


UGUEN Bernard, Rennes 1 University


GORCE Jean-Marie, INSA de Lyon
GOURSAUD Claire, INSA de Lyon


Wireless Body Area Networks (WBAN) refers to the family of “wearable” wireless sensor networks (WSN) used to collect personal data, such as human activity, heart rate, sleep sequences or geographical position.

This thesis aims at proposing cooperative algorithms and cross-layer mechanisms with WBAN to perform large-scale individual motion capture and coordinated group navigation applications.

For this purpose, we exploit the advantages of jointly cooperative and heterogeneous WBAN under full/half-mesh topologies for localization purposes, from on-body links at the body scale, body-to-body links between mobile users of a group and off-body links with respect to the environment and the infrastructure. The wireless transmission relies on an impulse radio Ultra-Wideband (IR-UWB) radio (based on the IEEE 802.15.6 standard), in order to obtain accurate peer-to-peer ranging measurements based on Time of Arrival (ToA) estimates. Thus, we address the problem of positioning and ranging estimation through the design of cross-layer strategies by considering realistic body mobility and channel variations.

Our first contribution consists in the creation of an unprecedented WBAN measurement database obtained with real experimental scenarios for mobility and channel modelling. Then, we introduce a discrete-event (WSNet) and deterministic (PyLayers) co-simulator tool able to exploit our measurement database to help us on the design and validation of cooperative algorithms. Using these tools, we investigate the impact of nodes mobility and channel variations on the ranging estimation. In particular, we study the “three-way ranging” (3-WR) protocol and we observed that the delays of 3-WR packets have an impact on the distances estimated in function of the speed of nodes. Then, we quantify and compare the error with statistical models and we show that the error generated by the channel is bigger than the mobility error.

In a second time, we extend our study for the position estimation. Thus, we analyze different strategies at MAC layer through scheduling and slot allocation algorithms to reduce the impact of mobility. Then, we propose to optimize our positioning algorithm with an extended Kalman filter (EKF), by using our scheduling strategies and the statistical models of mobility and channel errors. Finally, we propose a distributed-cooperative algorithm based on the analysis of long-term and short-term link quality estimators (LQEs) to improve the reliability of positioning. To do so, we evaluate the positioning success rate under three different channel models (empirical, simulated and experimental) along with a conditional algorithm (based on game theory) for virtual anchor choice. We show that our algorithm improve the number of positions estimated for the nodes with the worst localization performance.


CITI Talk: “Next Generation of Cellular Wireless Networks: Some Preliminary Results on QoE Consistency and Multiple Cell Selection”, by Catherine Rosenberg, on 12th July.

The next CITI talk will take place on 12th July at 11 am in TD-C.

This talk entitled “Next Generation of Cellular Wireless Networks: Some Preliminary Results on  QoE Consistency and Multiple Cell Selection” will be presented by Catherine Rosenberg, professor at the University of Waterloo.


Catherine will present preliminary results in next generation of cellular wireless networks on two topics.

The first topic is on the challenges of offering consistent Quality of Experience (QoE) in an environment where due to mobility, arrival and departures and time varying channels, the system state is highly stochastic.The second topic is on multiple cell selection. We aim at answering two questions: 1) how is performance improved? 2) how can it be implemented?

This work was done in collaboration with Fidan Mehmeti and Ararat Shaverdian.


Catherine Rosenberg is a Professor in Electrical and Computer Engineering at the University of Waterloo. Since June 2010, she holds the Tier 1 Canada Research Chair in the Future Internet. From 1999 to 2004, Prof. Rosenberg was a Professor in the School of Electrical and Computer Engineering at Purdue University.

Prof. Rosenberg is the President of the Scientific Advisory Board of Orange (formerly France-Telecom).  She was elected an IEEE Fellow for contributions to resource management in wireless and satellite networks on 2011 and a Fellow of the Canadian Academy of Engineering in 2013. Her research interests are mainly in three areas: the Internet, Wireless Networks, and Energy Systems.

PhD Defense: “Data aggregation in Wireless Sensor Networks”, by Jin Cui, on 27th June

The defense will take place on Monday 27th June at 14:30 in the Chappe amphitheatre, Chappe Building, INSA Lyon.

The presentation will be in English.



MINET Pascale, Inria


BOUSSETTA Khaled, Université Paris 13


VALOIS Fabrice,INSA Lyon


Wireless Sensor Networks (WSNs) have been regarded as an emerging and promising field in both academia and industry. Currently, such networks are deployed due to their unique properties, such as self-organization and ease of deployment. However, there are still some technical challenges needed to be addressed, such as energy and network capacity constraints. Data aggregation, as a fundamental solution, processes information at sensor level as a useful digest, and only transmits the digest to the sink. The energy and capacity consumptions are reduced due to less data packets transmission. As a key category of data aggregation, aggregation function, solving how to aggregate information at sensor level, is investigated in this thesis.

We make four main contributions:

Firstly, we propose two new networking-oriented metrics to evaluate the performance of aggregation function: aggregation ratio and packet size coefficient. Aggregation ratio is used to measure the energy saving by data aggregation, and packet size coefficient allows to evaluate the network capacity change due to data aggregation. Using these metrics, we confirm that data aggregation saves energy and capacity whatever the routing or MAC protocol is used.

Secondly, to reduce the impact of sensitive raw data, we propose a data-independent aggregation method which benefits from similar data evolution and achieves better recovered fidelity.

Thirdly, a property-independent aggregation function is proposed to adapt the dynamic data variations. Comparing to other functions, our proposal can fit the latest raw data better and achieve real adaptability without assumption about the application and the network topology.

Finally, considering a given application, a target accuracy, we classify the forecasting aggregation functions by their performances. The networking-oriented metrics are used to measure the function performance, and a Markov Decision Process is used to compute them. Dataset characterization and classification framework are also presented to guide researcher and engineer to select an appropriate functions under specific requirements.

PhD Defense: “Fluxional compiler : seamless shift from development productivity to performance efficiency, in the case of real-time web applications”, by Étienne Brodu, on 21st June

The defense will take place at 14.00 in Amphi Chappe, and will be in French with slides in English.



Gaël THOMAS, Telecom Sud Paris




Frédéric OBLÉ, Atos Worldline


Stéphane FRÉNOT, INSA Lyon


Most of the now popular web services started as small projects created by few individuals, and grew exponentially. Internet supports this growth because it extends the reach of our communications world wide, while reducing their latency. During its development, an application must grow exponentially, otherwise the risk is to be outpaced by the competition.

In the beginning, it is important to verify quickly that the service can respond to the user needs: Fail fast. Languages like Ruby or Java became popular because they propose a productive approach to iterate quickly on user feedbacks. A web application that correctly responds to user needs can become viral. Eventually, the application needs to be efficient to cope with the traffic increase.

But it is difficult for an application to be at once productive and efficient. When the user base becomes too important, it is often required to switch the development approach from productivity to efficiency. No platform conciliates these two objectives, so it implies to rewrite the application into an efficient execution model, such as a pipeline. It is a risk as it is a huge and uncertain amount of work. To avoid this risk, this thesis proposes to maintain the productive representation of an application with the efficient one.

Javascript is a productive language with a significant community. It is the execution engine the most deployed, as it is present in every browser, and on some servers as well with Node.js. It is now considered as the main language of the web, ousting Ruby or Java. Moreover, the Javascript event-loop is similar to a pipeline. Both execution models process a stream of requests by chaining independent functions. Though, the event-loop supports the needs in development productivity with its global memory, while the pipeline representation allows an efficient execution by allowing parallelization.

This thesis studies the possibility for an equivalence to transform an implementation from one representation to the other. With this equivalence, the development team can follow the two approaches concurrently. It can continuously iterate the development to take advantage of their conflicting objectives.

This thesis presents a compiler that allows to identify the pipeline from a Javascript application, and isolate its stages into fluxions. A fluxion is named after the contraction between function and flux. It executes a function for each datum on a stream. Fluxions are independent, and can be moved from one machine to the other, so as to cope with the increasing traffic. The development team can begin with the  productivity of the event-loop representation. And with the transformation, it can progressively iterate to reach the efficiency of the pipeline representation.



La plupart des grands services web commencèrent comme de simples projets, et grossirent exponentiellement. Internet supporte cette croissance en étendant les communications et réduisant leur latence. Pendant son développement, une application doit croître exponentiellement, sans quoi elle risque de se faire dépasser par la compétition.
Dès le début, il est important de s’assurer de répondre aux besoins du marché : Fail fast. Des langages comme Ruby ou Java sont devenus populaires en proposant la productivité nécessaire pour itérer rapidement sur les retours utilisateurs. Une application web qui répond correctement aux besoins des utilisateurs peut être adoptée de manière virale. Mais à terme, une application doit être efficace pour traiter cette augmentation de trafic.
Il est difficile pour une application d’être à la fois productive et efficace. Quand l’audience devient trop importante, il est souvent nécessaire de remplacer l’approche productive pour un modèle plus efficace. Aucune plateforme de développement ne permet de concilier ces deux objectifs, il est donc nécessaire de réécrire l’application vers un modèle plus efficace, tel qu’un pipeline. Ce changement représente un risque. Il implique une quantité de travail conséquente et incertaine. Pour éviter ce risque, cette thèse propose de maintenir conjointement les représentations productives et efficaces d’une même application.
Javascript est un langage productif avec une communauté importante. C’est l’environnement d’exécution le plus largement déployé puisqu’il est omniprésent dans les navigateurs, et également sur certains serveurs avec Node.js. Il est maintenant considéré comme le langage principal du web, détrônant Ruby ou Java. De plus, sa boucle évènementielle est similaire à un pipeline. Ces deux modèles d’exécution traitent un flux de requêtes en chaînant des fonctions les unes après les autres. Cependant, la boucle évènementielle permet une approche productive grâce à sa mémoire globale, tandis que le pipeline permet une exécution efficace du fait de sa parallélisation.
Cette thèse étudie la possibilité pour une équivalence de transformer une implémentation d’une représentation vers l’autre. Avec cette équivalence, l’équipe de développement peut suivre les deux approches simultanément. Elle peut itérer continuellement pour prendre en compte les avantages des deux approches.
Cette thèse présente un compilateur qui permet d’identifier un pipeline dans une application Javascript, et d’isoler chaque étape dans une fluxion. Une fluxion est nommée par contraction entre fonction et flux. Elle exécute une fonction pour chaque datum sur le flux. Les fluxions sont indépendantes, et peuvent être déplacées d’une machine à l’autre pour amortir l’augmentation du trafic. L’équipe de développement peut commencer à développer avec la productivité de la boucle évènementielle. Et avec la transformation, elle peut itérer pour progressivement atteindre l’efficacité du pipeline.

CITI Tutorial: “Simultaneous Energy and Information Transmission”, by Selma Belhadj Amor and Samir Perlaza, on 17th June

This CITI tutorial will take place on 17th June from 3 to 5 pm in Amphi Chappe.

The talk entitled “Simultaneous Energy and Information Transmission” will be presented by Selma Belhadj Amor, postdoctoral researcher at Inria, and Samir Perlaza, researcher at Inria.

Selma and Samir have already presented this tutorial in ICT 2016 (Thessaloniki, Greece), European Wireless 2016 (Oulu, Finland), and CROWNCOM 2016 (Grenoble, France).


This tutorial aims to familiarize the attendees with the new communication paradigm of simultaneous energy and information transmission (SEIT) in wireless networks. It is divided into four parts:

In the first part, the relevance of SEIT is highlighted as a powerful technique to ensure a more efficient energy utilization in future “green” communication systems, e.g, 5G networks, small cells, Wi-Fi networks, sensor networks and ad hoc networks. 

In the second part, particular attention is paid to existing techniques for implementing SEIT in point-to-point wireless communications. In particular, power allocation and beamforming techniques are reviewed. At the same time, strong emphasis is put on the fundamental limits of this technology using basic notions from information theory. 

In the third part, multi-user scenarios are studied and the key aspects of the energy-information trade-off are studied in both centralized networks, e.g, cellular networks and decentralized networks, e.g., sensor networks and ad hoc networks. In the latter, basic notions of game theory are studied to model the stable operating points of these networks. 

In the final part, practical aspects are tackled putting an emphasis on the main future challenges of SEIT in the context of 5G. For instance, front-end architectures allowing both energy-harvesting and information decoding are studied. At the same time, aspects regarding in-band and out-band energy transmission as well as co-located and non-cololated receivers and energy harvesters are discussed.

PhD Defense: “A flexible gateway receiver architecture for the urban sensor networks”, by Mathieu Vallérian, on 15th June

The defense will take place at 10.00 in Amphi Chappe, and will be in French with slides in English.



Claude DUVANAUD, Université de Poitiers

Patrick LOUMEAU, Télécom ParisTech


Christophe MOY, CentraleSupélec

Jean-François DIOURIS, Polytech Nantes

Pierre MADILLO, Orange Labs


Guillaume VILLEMAUD, INSA de Lyon

Florin HUTU, INSA de Lyon

Tanguy RISSET, INSA de Lyon




In this thesis, a receiver architecture for a gateway in a urban sensors network was designed. To embed the multiple protocols coexisting in this environment, the best approach seems to use a reconfigurable architecture, following the scheme of the Software-Defined Radio (SDR). All the received signals should be digitized at once by the Analog-to-Digital Converter (ADC) in order to sustain the reconfigurability of the architecture: then all the signal processing will be able to be digitally performed.
The main complication comes from the heterogeneity of the propagation conditions: from the urban environment and from the diversity of the covered applications, the signals can be received on the gateway with widely varying powers. Then the gateway must be able to deal with the high dynamic range of these signals. This constraint applies strongly on the ADC whose resolution usually depends on the reachable digitized frequency band.
A first study is led to evaluate the required ADC resolution to cope with the dynamic range. For this the dynamic range of the signals is first evaluated, then the required resolution to digitize the signals is found theoretically and with simulations. For a 100~dB power ratio between strong and weak signals, we showed that the ADC resolution needed 21 bits which is far too high to be reached with existing ADCs.
Two different approaches are explored to reduce analogically the signals’ dynamic range. The first one uses the companding technique, this technique being commonly used in analog dynamic range reduction in practice (e.g. in audio signals acquisition), its relevance in multiple signal digitization is studied. Three existing compression laws are explored and two implementations are proposed for the most efficient of them. The feasibility of these implementations is also discussed.
In the second approach we propose to use a two-antennas receiver architecture to decrease the dynamic range. In this architecture two digitization paths are employed: the first one digitizes only the strongest signal on the band. Using the information we get on this signal we reconfigure the second branch of the architecture in order to attenuate the strong signal. The dynamic range being reduced, the signals can be digitized with an ADC with a lower resolution. We show in this work that the ADC resolution can de decreased from 21 to 16 bits using this receiver architecture.
Finally, the promising two-antennas architecture is tested in experimentation to demonstrate its efficiency with dynamic signals (i.e. with appearing and disappearing signals).


Dans les réseaux de capteurs urbains, les nœuds émettent des signaux en utilisant plusieurs protocoles de communication qui coexistent. Ces protocoles étant en évolution permanente, une approche orientée radio logicielle semble être la meilleure manière d’intégrer tous les protocoles sur la passerelle collectant les données. Tous les signaux sont donc numérisés en une fois.
La grande plage dynamique des signaux reçus est alors le principal problème : ceux-ci peuvent être reçus avec une puissance très variable selon les conditions de propagation. Dans le cas d’une réception simultanée, le Convertisseur Analogique-Numérique (CAN) doit être capable d’absorber une telle dynamique.
Une première étude est menée afin d’établir les caractéristiques requises du CAN sur une passerelle d’un tel réseau de capteurs. La résolution minimale de 21 bits obtenue s’avérant trop importante pour être atteinte au vu de l’état de l’art actuel, deux approches différentes sont explorées pour réduire la plage dynamique des signaux avant la numérisation.
La première approche s’appuie sur la technique du companding. Des lois de compression connues sont explorées afin d’étudier leur viabilité dans le cas de la numérisation de signaux multiples, et deux nouvelles implémentations sont proposées pour la plus performante d’entre elles.
La deuxième technique proposée consiste en une nouvelle architecture de réception utilisant deux voies de réception. La première d’entre elles est dédiée au signal le plus fort sur la bande : celui-ci est démodulé et sa fréquence d’émission est mesurée. À partir de cette mesure, la seconde branche est reconfigurée de manière à atténuer ce signal fort, en réduisant ainsi la plage dynamique. Les autres signaux sont ensuite numérisés sur cette branche avec une résolution du CAN réduite.
Cette deuxième approche semblant plus prometteuse, elle est testée en expérimentation. Sa viabilité est démontrée avec des scénarios de réception de signaux prédéfinis représentant les pires cas possibles.


Two PhD positions in Applied Mathematics at CITI Lab

The Socrate Team – Cybernetic Communications Project at Inria, Lyon, France, is looking for two self-motivated full-time Ph.D. students in applied mathematics. The current opening revolves around the analysis of fundamental limits of decentralized data transmission systems via an interdisciplinary approach using tools from information theory, game theory, distributed stochastic systems and signal processing.

Both Phd positions are fully funded by Inria and are associated to the doctoral school of Université de Lyon.  The selected candidate will enjoy working with a variety of collaborators from Inria and other partner institutions (see This position is particularly suited to students holding a degree in electrical engineering, computer sciences, physics and/or applied mathematics, seeking for an academic and research career. The start date can be as soon as September 2016. Skills in french language are not required.

Application and More Information

Applicants should submit to a cover letter indicating the candidate’s research interests; a detailed curriculum vitae; a list of publications (if any); a list of relevant graduate courses taken along with grades; and contact of two or three referees.

About Inria

Established in 1967, Inria is the only French public research body fully dedicated to fundamental and applied research in information and communication sciences and technology (ICST). Inria is a national operator in research in digital sciences and is a primary contact point for the French Government on digital matters. Under its founding decree as a public science and technology institution, jointly supervised by the French ministries for research and industry, Inria’s missions are to produce outstanding research in the computing and mathematical fields of digital sciences and to ensure the impact of this research on the economy and society in particular. Inria covers the entire spectrum of research at the heart of these activity fields and works on digitally-related issues raised by other sciences and by actors in the economy and society at large. Beyond its structures, Inria’s identity and strength are forged by its ability to develop a culture of scientific innovation and to stimulate creativity in digital research. Throughout its 8 research centres and its 180 project teams, Inria has a workforce of 3400 scientists with an annual budget of 265 million euros, 29% of which coming from its own resources.

About CITI-Lab

The Cybernetic Communications Group -Cybernets@Inria- is hosted by the Centre for Innovation and Integration of Services (CITI Lab). The CITI Lab is an INRIA research laboratory affiliated to Université de Lyon and l’INSA de Lyon (National Institute of Applied Sciences).

Postdoctoral opportunity on anonymization of mobile phone data at CITI Lab


Anonymization of mobile phone data: algorithm design and impact on applications


CITI Lab, INSA Lyon, Inria – Villeurbanne, France


18-month postdoctoral fellowship

Start date

Fall 2016

Contacts and supervisors

Marco Fiore

More info:

Razvan Stanica

More info:


EUR 2,300 per month (net)


Applications are invited for one postdoctoral position on technical solutions for privacy-preserving publishing of mobile phone data.

The fellow will work on:

(i) the design of algorithms for the anonymization of datasets of mobile network customer trajectories;

(ii) the implementation of such algorithms in big data processing engines;

(iii) the evaluation of the resulting solutions on production databases provided by network operators.

The work will be carried out in cooperation with CNR-IEIIT, Italy, whose early solutions [1,2] will represent the foundations for the work carried out by the fellow, and with Orange, a major mobile network operator in France, who will provide real-world case studies where to apply the privacy solutions at scale.

[1] M. Gramaglia, M. Fiore, On the anonymizability of mobile traffic datasets, NetMob 2015, Boston, MA, USA, May 2015
[2] M. Gramaglia, M. Fiore, Hiding Mobile Traffic Fingerprints with GLOVE, ACM CoNEXT 2015, Heidelberg, Germany, December 2015

What we ask

– A PhD in Computer Science or related field

– Proven past experience in big data processing, preferably with Spark

– A strong publication record in relevant top-tier conferences and journals

– Fluency in written and spoken English.

What we offer

– A unique opportunity to work with massive, fine-grained mobility data

– The possibility to advance the state-of-the-art in the mobile data analytics field

– The prospect to publish at major venues in networking and data mining.

How to apply

– A CV

– A one-page research statement discussing how the candidate’s background fits requirements and topic

– Contact details of two referees shall be sent to and

Applications will be reviewed until the position is filled


PhD position in programming languages and IoT at CITI Lab


Programming language abstractions for the Internet of Things


Programming languages, distributed systems, Internet of Things, middleware


CITI-INRIA Laboratory, Université de Lyon, INSA de Lyon (

Dynamid research team (


This PhD thesis will be supported by the Spie-ICS – INSA chair on IoT that will start in September 2016.

Start date

September 2016


Main supervisor: Dr Julien Ponge

More info:

Co-supervisor: Dr Frédéric Le Mouël

More info:

Research project

The so-called Internet of Things marks the convergence of small connected devices (e.g., personal devices, body devices, wireless sensors) and the larger set of more traditional distributed applications as accessed over standard Internet protocols. The “software is eating the world” mantra ( is no lie as more and more of devices communicate with cloud-based services. Still, developing and integrating software remains largely a crafting exercise with mainstream programming languages, while research languages tend to be too impractical.

The architecture of modern applications is converging towards distributed services that expose standard-based interfaces. A service tends to fulfill a single functional purpose (e.g., storing some data / logs, providing authentication, and so on). In this setting an application shifts from a paradigm where it is made by assembling component libraries to a paradigm where many (distributed) processes form the application. Communications between such services are typically made using the general-purpose HTTP protocol, but more specific ones can be used when needed (MQTT for IoT devices, ZigBee in some wireless sensor networks, etc). Given that distributed services rely on the integration with other services through highly inter-operable protocols, it is very wise to take advantage of many programming languages rather than follow a “one size fits it all” approach.

Interestingly, the characteristics of distributed services deployed on cloud infrastructures are quite similar to those of (sensor) network gateways. Among many problems, these applications need to cope with concurrency due to network requests, and they have to bind data from/to network protocols. While middleware can be used to, say, automatically expose a HTTP service interface and perform data binding, or to provide concurrent programming abstractions, this remains orthogonal to programming language operational semantics and type systems.

The history of programming languages is paved with abstractions being moved from library support to first-class citizen language constructs: memory management (e.g., Java, Self), threads (e.g., Java), actor models (e.g., Erlang, Scala), communicating sequential processes over co-routines (e.g., Go), etc. Still, even with a modern programming language the development of distributed services involves lots of boilerplate code (e.g., types for network messages data-binding) and there is little to no static checks beyond types, especially with respect to the correctness of concurrent code. As an example, the Go programming language only provides runtime race condition detection.

In practice, one can observe that the code of a typical application based on distributed services involves a significant share of message processing and network operations. The literature lacks successful languages that were both practical and suitable for these kinds of networked applications. The Scala programming language is a prime example of a language effort that initially tried to address the need for the development of “XML services” with the support of XML semi-structured data elements in the language. Still, Scala does not enforce a concurrency model, it does not provide network programming helpers, and it merely focused its efforts on a sophisticated type system. Funnel (Functional Nets) was a predecessor of Scala with first-class support for concurrency primitives based on join-calculus. Still, it proved impractical to use in real-world applications, just like other attempts of join-calculus in the ML / OCaml families.

An alternative to composing distributed applications using programming languages is to rely on some orchestration language such as BPEL and workflow execution engines. Behavioral protocols can be extracted from BPEL processes, which is useful for checking correctness of distributed systems compositions. Still, the limited expressiveness of workflow languages combined with the complex tooling to develop, test and execute them limit their wider adoption in favor of more traditional programming languages.

The main scientific goal of this PhD thesis is to investigate which abstractions shall be part of the next-generation programming languages in the age of the Internet of Things. We are especially interested, but not limited to, the useful abstractions to cope with: concurrency, asynchronous programming, data processing, software dynamics, message passing, network membership discovery and distributed algorithms (e.g., consensus and transactions). Given the distributed / concurrent nature of the applications that we target, we are also interested in providing compilation-time assistance beyond classical type checking (e.g., deadlock detection, time-bound guarantees, operation sequences consistency, etc). Last but not least: we also want the research outcomes to be practical.

Anticipated challenges

1. Establish an exhaustive state of the art on programming language and middleware abstractions. Consider which ones shall be part of a programming language, and which ones shall be relegated to library support, based on an extensive study of distributed services requirements.

2. Propose a programming language, perhaps as a new or a derivative of an existing one like Eclipse Golo, a language developped at the CITI Lab. Formalize and prove the soundness and correctness of its type system and operational semantics. Classify the ranges of static checks that can be performed at compilation time. Devise which remaining checks shall be done at runtime. Discuss their algorithms.

3. Propose an implementation on top of the Java Virtual Machine or the LLVM code generation infrastructure with state of the art performance. Develop a rigorous micro-benchmarks tests suite, and revisit some suitable larger benchmarks from popular references like

4. Validate the language usefulness for developing distributed applications, both in cloud and wireless sensor gateway settings. Provide metrics to evaluate programs against other languages. Perform a field study on practitioners to assess the language practicability, suitability and learning curve.

As the work will be conducted in a larger project as part of the Spie-INSA chair on IoT, the candidate will conduct experiments and share progress with other PhD students in systems, networking and radio communications. We will take advantage of a large IoT experimental room that we have, as well as the FIT / CorteXlab testbeds (

Recruitment process
Expected skills

The candidate should have earned an MSc degree (or equivalent) in computer science and engineering. The candidate must have a strong background in distributed computing, both from theoretical and practical point of views, as well as good notions on programming languages theory and implementation. The nature of this work requires strong software engineering skills. Knowledge of the JVM internals or LLVM is a plus, as well as having been exposed to a wide range of programming language families.

How to apply

Email a motivation letter

Full CV with project and courses that could be related to the subject

Complete academic records (from Bachelor to MSc)

2 or 3 references

Applications will be reviewed when they arrive until one candidate is selected


Baptiste Maingret, Frédéric Le Mouël, Julien Ponge, Nicolas Stouls, Jian Cao and Yannick Loiseau. Towards a Decoupled Context-Oriented Programming Language for the Internet of Things. In Proceedings of the 7th International Workshop on Context-Oriented Programming (COP’2015) in conjunction with the European Conference on Object-Oriented Programming (ECOOP’2015). Prague, Czech Republic, July 2015.

Julien Ponge, Frédéric Le Mouël, and Nicolas Stouls. 2013. Golo, a dynamic, light and efficient language for post-invokedynamic JVM. In Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools (PPPJ ’13). ACM, New York, NY, USA, 153-158.

Julien Ponge, Computer Science & Engineering, Faculty of Engineering, UNSW. (2009). Model based analysis of time-aware web services interactions. PhD Thesis. University of New South Wales.

Martin Odersky. 2000. Functional Nets. In Proceedings of the 9th European Symposium on Programming Languages and Systems (ESOP ’00). Springer-Verlag, London, UK, UK, 1-25.

Martin Odersky and Matthias Zenger. 2005. Scalable component abstractions. In Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (OOPSLA ’05). ACM, New York, NY, USA, 41-57.

Burak Emir, Sebastian Maneth, and Martin Odersky. 2006. Scalable programming abstractions for XML services. In Dependable Systems, Jürg Kohlas, Bertrand Meyer, and Andrü Schiper (Eds.). Springer-Verlag, Berlin, Heidelberg 103-126.

Rob Pike. 2012. Go at Google. In Proceedings of the 3rd annual conference on Systems, programming, and applications: software for humanity (SPLASH’12). ACM, New York, NY, USA, 5-6.

Cédric Fournet and Georges Gonthier. 1996. The reflexive CHAM and the join-calculus. In Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL ’96). ACM, New York, NY, USA, 372-385.

Cédric Fournet, Georges Gonthier, Jean-Jacques Lévy, Luc Maranget, and Didier Rémy. 1996. A Calculus of Mobile Agents. In Proceedings of the 7th International Conference on Concurrency Theory (CONCUR ’96). Springer-Verlag, London, UK, UK, 406-421.

Cédric Fournet, Cosimo Laneve, Luc Maranget, and Didier Rémy. 1997. Implicit Typing à la ML for the Join-Calculus. In Proceedings of the 8th International Conference on Concurrency Theory (CONCUR ’97). Springer-Verlag, London, UK, UK, 196-212.

Chun Ouyang, Eric Verbeek, Wil M. P. van der Aalst, Stephan Breutel, Marlon Dumas, and Arthur H. M. ter Hofstede. 2007. Formal semantics and analysis of control flow in WS-BPEL. Sci. Comput. Program. 67, 2-3 (July 2007), 162-198.

Chris Lattner and Vikram Adve. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO’04), Palo Alto, California, Mar. 2004.