2022-05071 - PhD Position F/M Optimizing Compilation from Higher-Order Programming to Computer Architecture
Le descriptif de l’offre ci-dessous est en Anglais

Type de contrat : CDD

Niveau de diplôme exigé : Bac + 5 ou équivalent

Fonction : Doctorant

A propos du centre ou de la direction fonctionnelle

The Inria Rennes - Bretagne Atlantique Centre is one of Inria's eight centres and has more than thirty research teams. The Inria Center is a major and recognized player in the field of digital sciences. It is at the heart of a rich R&D and innovation ecosystem: highly innovative PMEs, large industrial groups, competitiveness clusters, research and higher education players, laboratories of excellence, technological research institute, etc.

Contexte et atouts du poste

JavaScript programs are typically executed by a JIT compiler, able to handle efficiently the dynamic aspects of the language. However, JIT compilers are not always viable or sensible (e.g., on constrained IoT systems, due to secured read-only memory (W⊕X), or because of the energy spent recompiling again and again).

Within the framework of a partnership between two Inria project-teams (PACAP in Rennes and INDES in Sophia Antipolis), we propose to rely on ahead-of-time compilation, and achieve performance thanks to optimistic compilation, and detailed analysis of the behavior of the processor, thus requiring a wide range of expertise from high-level dynamic languages to microarchitecture.

The PhD will be co-advised by Erven Rohou (PACAP) and Manuel Serrano (INDES). The PhD student will be administratively registered at the University of Rennes 1.

This position will require trips to Inria Nice Sophia Antipolis several times a year (travel expenses covered).

Mission confiée

The ideas and tools that will be crafted during this PhD will be used to analyze and compare the different JavaScript implementations in order to shed light on aspects of the executions that are generally badly understood. That is, this analysis will compare the behavior of the different executions and their adaptation to actual hardware settings, instead of focusing on raw performance of JavaScript benchmark as most analyses do. More precisely, Hopc has various code generation strategies to translate JavaScript to C. The goal is to compare them with each other, and also against what existing JIT compilers do.

The PhD candidate will:

  • initially analyze and compare the different JavaScript implementations (commercial JITs and Hop) in order to shed light on aspects of the executions wrt. the microarchitecture that are generally badly understood;
  • then, they will assess the various code generation strategies of Hop. For this purpose, the initial idea consists in three steps: first, run the programs and measure wall-clock time; second, run under the control of the perf tool to collect low-level information from hardware counters, such as instruction count, branch misprediction, behavior of memory hierarchy, etc; finally, the statically generated code is run in a micro-architecture simulator, developed by PACAP, capable of precisely pinpointing the behavior of particular instructions, such as branch or memory instructions.

As a result of analyzing the data, the objective is to derive recommendation about the best code generation strategy for the static compilation of JavaScript.

Principales activités

  • Conduct bibliographic study
  • Elaborate and discuss of new ideas
  • Implement ideas in an experimental compiler framework
  • Conduct performance evaluation and experimentation
  • Write scientific papers
  • Give research talks
  • Write a thesis manuscript



Required technical skills :

  • proficiency in C, C++, and JavaScript languages
  • understanding of assembly language
  • knowledge of compiler internals
  • knowledge of processor microarchitecture

Languages : English (read, written, spoken)

Relational skills : ability to work in a team



  • Subsidized meals
  • Partial reimbursement of public transport costs
  • Possibility of teleworking ( 90 days per year) and flexible organization of working hours
  • partial payment of insurance costs


monthly gross salary amounting to 1982 euros for the first and second years and 2085 euros for the third year