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