Thesis of Carolina Hernandez Phillips

Bootstrap-based Language Development: Turning an existing VM into a polyglot VM

<version1>Développer ou étendre un langage de programmation est chronophage. De nombreuses techniques simplifient l'étape de l'implémentation, telles que les compilateurs extensibles, les frameworks DSL déclaratifs, des solutions basées sur des interpréteurs ou encore des techniques Bootstrap. Toutes ces solutions existantes ont un problème en commun : les erreurs dans la définition du langage ont des effets indésirables dans les étapes ultérieures de la génération ou même au moment de l'exécution, augmentant la distance cognitive entre défauts et échecs. Cette thèse prend comme point de départ la technique du Bootstrap, dans laquelle les langages sont générés de manière réflexive. Le noyau produit contient le runtime du nouveau langage et sont exécutés par une machine virtuelle (VM) existante. Ils doivent donc obligatoirement respecter les contraintes sous-jacentes imposées par la VM cible. Dans ce contexte, nous proposons une amélioration de la technique Bootstrap en offrant un processus de développement de haut niveau basé sur des extensions de méta-modèle du langage, des transformations de modèle et l'exécution d'instructions d'initialisation écrites dans le même langage qui est généré. Notre solution garantit la compatibilité du noyau généré avec la VM cible. Ceci est réalisé grâce à la réification des contraintes de la VM utilisée pour tester le noyau lors de sa construction, et pour implémenter un Protocole de Méta-Objet prenant en compte les contraintes de la VM. Ce protocole est utilisé pour manipuler à la fois le modèle du langage et le noyau. En plus, notre solution est capable de générer des noyaux spécialisés en fonction des besoins d'une application spécifique. Pour démontrer la généralité de notre approche, nous présentons la génération réussie de 4 noyaux de langage à base d'objets : ObjVLisp, Candle, Owner et Proto sur une même VM. De plus, nous générons des noyaux spécialisés pour des applications spécifiques.

Jury

M. Luc FABRESSE IMT Lille Douai, CERI Numérique Directeur de Thèse Mme Elisa GONZALEZ BOIX Vrije Universiteit Brussel Examinatrice M. Alain PLANTEC Université de Bretagne Occidentale Rapporteur M. Michael ENGEL Norwegian University of Science and Technology Examinateur M. Guillermo POLITO Univ. Lille, CNRS, Inria, Centrale Lille, UMR 9189 CRIStAL Examinateur M. Wolfgand DE MEUTER Universiteit Brussel Rapporteur M. Noury BOURAQADI IMT Lille Douai, CERI Numérique Invité M. Stéphane DUCASSE Univ. Lille, Inria, CNRS, Centrale Lille, UMR 9189 CRIStAL Invité

Thesis of the team RMoD defended on 05/11/2021