Stage 2026 - Génie Logiciel - Polyglot Software Analysis H/F - Berger Levrault
- Limonest - 69
- Stage
- Berger Levrault
Les missions du poste
Sujet : Polyglot software analysis
Contexte :
Berger-Levrault développe de nombreuses applications, certaines utilisant plusieurs langages de programmation et d'autres reposant sur des microservices, ce qui entraîne la présence de plusieurs artefacts qui communiquent entre eux.
Au sein de la DRIT (Direction de la Recherche et de l'Innovation Technologique), l'équipe LabGL utilise principalement Moose pour analyser les logiciels de BL.
Cependant, Moose est conçu pour analyser des logiciels monolithiques : lorsqu'un logiciel contient plusieurs langages, il génère un modèle distinct pour chacun d'eux, sans les relier, il ne détecte pas les microservices appartenant à un même logiciel, même si ceux-ci en font effectivement partie.
L'analyse polyglotte est encore faiblement appliquée en général, et pour Moose elle est peu introduite. Pour avancer, il est nécessaire de commencer par la génération de métamodèles permettant de représenter divers langages (Python, TypeScript, C#, VB, Go, R...).
Une solution existe pour générer une première version des métamodèles FAST, capables de représenter des AST (Abstract Syntax Tree) du code source, grâce à Tree-Sitter, qui sait parser plusieurs langages et produire des modèles.
Cependant, la génération des métamodèles FAST avec Tree-Sitter reste incomplète, notamment parce qu'il manque deux compléments très importants :les tests et les propriétés
Objectif :
Le stage aura pour objectif d'automatiser la génération des tests et des propriétés pour chaque métamodèle FAST généré.
Pour cela, le/la stagiaire devra s'appuyer sur les dépôts Tree-Sitter de chaque langage, qui fournissent de nombreux exemples couvrant la majorité des noeuds des métamodèles.
L'utilisation de l'intelligence artificielle pourra être envisagée pour analyser ces exemples et les associer automatiquement aux noeuds correspondants.
Missions :
-
Explorer Pharo et Moose (Famix, FAST, MoTion actuellement) étant débutant. (1 semaine)
-
Ajouter 5 propriétés pour FASTTypeScript avec 5 tests manuellement pour pouvoir comprendre comment ça fonctionne (1semaine)
-
Faire des recherches pour comprendre:
- Comment on peut automatiser la génération des tests en utilisant l'IA ou autre outil
- Est-ce que l'IA peut comprendre un exemple, ça donne quoi ...
-
Générer des métamodèles FAST: on souhaite commencer par Python, et on peut continuer par C#, VB ...
-
Travailler sur la génération des propriétés des nodes (comme par exemple pour FASTTypeScriptClass on a des proriétés comme body' et name').
Profil :
Vous êtes étudiant(e) en dernière année d'école d'ingénieur ou équivalent universitaire (Bac +5), ayant une orientation en Génie Logiciel et vous recherchez un stage de 6 mois débutant au printemps 2026.
Vous possédez un langage orienté objet (Java, C#, Pharo, ...).
Vous utilisez un environnement Git.
Vous avez une capacité rédactionnelle et de synthèse.
Vous faites preuve d'autonomie.
Informations :
Votre future dream team: Intégré(e) à la Direction de la Recherche et de l'Innovation Technologique (DRIT) de Berger Levrault, vous rejoindrez une équipe innovante qui valorise la curiosité, la collaboration et l'expérimentation. Chercheurs, doctorants, étudiants et ingénieurs collaborent quotidiennement pour concevoir des solutions innovantes et préparer les usages technologiques de demain.