🔍 Sujet : MoTion - Model transformaTion
🧩 Contexte :
MoTion (venant de MOdel transformaTION) est un langage et un outil de pattern matching avancé qui fonctionne dans Pharo. Avec MoTion, des patterns peuvent être exprimés en utilisant un syntaxe spécifique, afin de rechercher des correspondances dans un modèle importé dans Pharo. Dans la plupart des cas, MoTion est utilisé pour trouver des correspondances dans des modèles représentant des logiciels qui peuvent être codés en Java, TypeScript, etc. Par exemple, les développeurs peuvent utiliser MoTion pour trouver toutes les structures if/else dans un modèle représentant un logiciel programmé en Java.
Pour le moment, MoTion fonctionne très bien pour effectuer du pattern matching, grâce à deux points forts :
Par contre, MoTion, et comme son nom l’indique, était également censé réaliser des transformations, et pas seulement des recherches. Ce principe est bien connu dans le contexte de la transformation de modèles, comme avec ATL et QVT, où le pattern matching est utilisé pour identifier des correspondances dans des modèles. Cependant, avec ces langages, les développeurs peuvent aussi exprimer des règles de transformation, qui permettent de transformer les éléments d’un modèle, trouvés à l’aide du pattern matching suivant un motif A, en d’autres éléments correspondant à la description d’un motif B, appelé motif cible.
🎯 Objectif : Le stage aura donc comme objectif de pouvoir ajouter cette fonctionnalité de transformation d’un motif A vers un motif B des modèles FAST (qui représentent l’AST d’un source code).
🛠️ Missions :
Explorer Pharo et Moose (Famix, FAST, MoTion …) étant débutant.
Ajouter 2 fonctionnalités pour MoTion pour pouvoir comprendre comment cela fonctionne: match avec des nombres et limited recursive
Faire des recherches pour comprendre comment les transformations sont faites au niveau AST (par exemple avec ATL ou QVT ou autres …)
Appliquer la transformation sur MoTion + ajouter des tests
DIVERSITE ET INCLUSION : CHEZ NOUS, C’EST PLUS QU’UNE POLITIQUE, C’EST UNE FORCE !
Nous nous engageons à :
Parce que la singularité de chacun est une richesse, nous mettons tout en place pour que chaque collaboratrice et collaborateur puisse s'exprimer et s'épanouir pleinement.
Rencontrez Sandra, Développeuse Full stack
Rencontrez Xavier, Chief data Officer
Ces entreprises recrutent aussi au poste de “Développement de logiciels et de sites Web”.