Stage compilation Python (H/F)

Développement d'un compilateur Python

Mission

L'objectif de ce stage est de développer un compilateur d'un sous-ensemble, le plus large possible, de Python vers des exécutables natifs (x86, ARM, RISC-V...) et/ou WASM (WebAssembly).

Le projet utilisera l'analyseur syntaxique standard de Python comme frontend, et un ou plusieurs backends à déterminer (LLVM, PPCI, code intermédiaire en C...).

Des benchmarks seront réalisés par rapport aux approches actuelles (Cython, variantes "accélérées" de Python, Numba...).

L'outil permettra à la fois des approches JIT (Just in time) et AOT (compilation traditionnelle de modules Python vers des modules exécutables '.o' ou équivalents). Le projet devra aussi tenir compte du parallélisme, e.g. du GIL (Global Interpreter Lock) de Python.

Le projet sera open source.

Profil

  • Etudiant(e) en école d'ingénieur, d'informatique ou équivalent universitaire (master 2).
  • La maitrise de Python est indispensable, ainsi que des connaissances et une première expérience dans le développements d'outils de programmation (analyseurs syntaxiques, génération de code...)
  • Un esprit créatif et la capacité à transformer des idées originales en des prototypes.
  • Capacité à produire du code propre et maintenable (notamment via le TDD).

Conditions pratiques

Type de stage ou contrat: Stage pour étudiants en formation initiale

Date prévisionnelle de démarrage: ASAP

Durée du stage: de 4 à 6 mois

Le stage est-il rémunéré ?: Oui

Pour postuler, envoyez un mail à: jobs@abilian.com