The defense of the PhD of Carolina HERNANDEZ PHILLIPS will be held next Friday, November 5th 2021 at 10h00. It will take place in the Auditorium room of INRIA Lille Nord Europe Parc scientifique de la Haute-Borne 40, avenue Halley – Bât B – Park Plaza 59650 Villeneuve d’Ascq, France.
Bootstrap-based Language Development
Turning an existing VM into a polyglot VM
Programming languages need to evolve as software requirements change, but their prototyping and extension comes at the cost of great development efforts. Bootstrap is a technique to support the evolution of a single language or a family of similar languages, specially used in the implementation of reflective languages. However, bootstrapping new languages is a challenging task due to the lack of proper abstractions for language specification, late manifestation of errors, and abstraction leaps during debugging tasks.
In this dissertation, we study the design of a bootstrap-based language development technique that supports the generation of multiple languages with low efforts. For this we introduce MetaL, a bootstrapping framework where language specification is based on metamodels and reflective instructions. Thanks to its Meta Object Protocol (MOP), MetaL ensures model correctness and kernel health, detecting corruption early during the generation process. To validate our approach, we report on the successful generation of seven object-oriented language kernels, plus an experiment by an external user. These experiments show that MetaL: reduced developer efforts in each study case and that MetaL is applicable in real world scenarios. Nevertheless, this experience also shows that relying on metamodels for language specification hinders code reuse. To solve the previous limitation we propose AspectMetaL, an aspect-oriented layer on top of MetaL that allows language specification at the level of semantic features. To validate AspectMetaL, we generated 3 kernels by combining both semantic features and learning that AOP is effective for improving code reuse and rising the abstraction level for language specification.
Keywords: bootstrapping, programming language design, reflective languages, language runtime initialization.
Pr. Elisa Gonzalez Boix, Vrije Universiteit Brussel
Pr. Alain Plantec, Université de Bretagne Occidentale
Pr. Wolfgang De Meuter, Vrije Universiteit Brussel
Dr. Michael Engel, Norwegian University of Science and Technology
Pr. Luc Fabresse, IMT Nord Europe
Dr. Polito, Univ. Lille, CNRS, INRIA, Centrale Lille, UMR 9189 CRIStAL
DR. Stéphane Ducasse, INRIA Lille Nord Europe
Pr. Noury Bouraqadi, IMT Nord Europe