Julien Pagès

My photo

Biography

I am a PhD in computer science specialized in compilers, I'm currently working as as software engineer.
I am interested in the design and implementation of programming languages, especially with just in time compilation. I did my PhD in the University of Montpellier under the direction of Roland Ducournau. I worked on a virtual machine for a research Object-Oriented language called Nit. The research was focused on implementing efficiently Object-Oriented mechanisms in the context of a JIT compiler and in multiple inheritance. This was a collaboration with the Université du Québec à Montréal (UQAM) in Montréal, Canada.
Then I worked for one year in the INRIA team CAMUS in Strasbourg, France on automatic parallel optimizations for dynamic languages. We used polyhedral optimizations and tools which are usually used on static languages like C on the JavaScript language. We implemented a proof of concept in the JavaScript Core virtual machine of the webkit project.
From september 2017 to December 2018 I was a postdoctoral fellow in the Université de Montréal and I worked with Marc Feeley on implementing dynamic languages. During this project I have develop a proof of concept of a Python JIT compiler based on the Basic-block Versionning technique.
After that I worked for Octasic, a private company based on Montréal as a software engineer. Octasic is developing DSP for embedding systems which are then typically used in radio applications. I was helping them to develop and improve their compiler from C to their custom assembly. This compiler was based on LLVM and clang.
Since December 2020 I am working for AMD as a Senior Software Engineer. I am working on the open-source shader compiler based on LLVM for current and future architectures of AMD GPUs.

Publications

Conferences
PhD and Master thesis

Talks and seminars

  • Twopy: un compilateur pour Python basé sur la spécialisation de code.
    Séminaire du DIRO Université de Montréal, Montréal, Canada, 2018 [ slides ]
  • Twopy : un JIT pour python.
    Séminaire du laboratoire LTP Université de Montréal, Montréal, Canada, 2017 [ slides ]
  • Optimisation polyédrique à l’exécution dans le contexte de langages dynamiques.
    Rencontre de la communauté française de compilation, Lyon, France, 2017 [ slides ]
  • JavaScript Parallelizing Compiler for Exploiting Parallelism from Data-Parallel HTML5 Applications.
    Séminaire ICPS/CAMUS, Strasbourg, France, 2017 [ slides ]
  • Machines virtuelles et langages à objet en héritage multiple.
    Séminaire équipe ICPS/CAMUS, ICube, Strasbourg, France, 2016
  • A virtual machine for testing compilation/recompilation protocols in multiple inheritance.
    Séminaire équipe MAREL, LIRMM, Montpellier, France, 2015 [ slides ]
  • Une machine virtuelle pour un langage à objets en héritage multiple.
    Séminaire des doctorants du LIRMM, Montpellier, France, 2015 [ slides ]
  • Une machine virtuelle pour Nit.
    Séminaire du LATECE (UQAM), Montréal, Canada, 2014 [ slides ]
  • Étude d’une machine virtuelle en héritage multiple basée sur le hachage parfait.
    Journée génie logiciel du LIRMM, Pignan, France, 2014 [ slides ]
  • University teaching

    Teaching assistant (for around 415h) in Universities of Montpellier and Strasbourg

    University of Strasbourg : 2016-2017
    University of Montpellier : 2012-2016

    Contact

    julien.m.pages(at)gmail.com

    Github page LinkedIn profile