A Bootstrapping Infrastructure to Build ...
Type de document :
Communication dans un congrès avec actes
DOI :
Titre :
A Bootstrapping Infrastructure to Build and Extend Pharo-Like Languages
Auteur(s) :
Polito, Guillermo [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Ducasse, Stephane [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Fabresse, Luc [Auteur]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Bouraqadi, Noury [Auteur]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Ducasse, Stephane [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Fabresse, Luc [Auteur]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Bouraqadi, Noury [Auteur]
Centre for Digital Systems [CERI SN - IMT Nord Europe]
Titre de la manifestation scientifique :
Onward!
Ville :
Pittsburg
Pays :
Etats-Unis d'Amérique
Date de début de la manifestation scientifique :
2015-06-21
Mot(s)-clé(s) en anglais :
Traits
OOP
Bootstrapping
Meta-programming
PHARO
OOP
Bootstrapping
Meta-programming
PHARO
Discipline(s) HAL :
Informatique [cs]/Langage de programmation [cs.PL]
Résumé en anglais : [en]
Bootstrapping is well known in the context of compilers, where a bootstrapped compiler can compile its own source code. Bootstrapping is a beneficial engineering practice because it raises the level of abstraction of a ...
Lire la suite >Bootstrapping is well known in the context of compilers, where a bootstrapped compiler can compile its own source code. Bootstrapping is a beneficial engineering practice because it raises the level of abstraction of a program making it easier to understand, optimize, evolve, etc. Bootstrapping a reflective object-oriented language is however more challenging , as we need also to initialize the runtime of the language with its initial objects and classes besides writing its compiler. In this paper, we present a novel bootstrapping infrastructure for Pharo-like languages that allows us to easily extend and modify such languages. Our bootstrapping process relies on a first-class runtime. A first-class runtime is a meta-object that represents a program's runtime and provides a MOP to easily load code into it and manipulate its objects. It decou-ples the virtual machine (VM) and language concerns by introducing a clear VM-language interface. Using this process, we show how we succeeded to bootstrap a Smalltalk-based language named Candle and then extend it with traits in less than 250 lines of high-level Smalltalk code. We also show how we can bootstrap with minimal effort two other languages (Pharo and MetaTalk) with similar execution semantics but different object models. Acknowledgments We thank the European Smalltalk User Group for their support (www.esug.org).Lire moins >
Lire la suite >Bootstrapping is well known in the context of compilers, where a bootstrapped compiler can compile its own source code. Bootstrapping is a beneficial engineering practice because it raises the level of abstraction of a program making it easier to understand, optimize, evolve, etc. Bootstrapping a reflective object-oriented language is however more challenging , as we need also to initialize the runtime of the language with its initial objects and classes besides writing its compiler. In this paper, we present a novel bootstrapping infrastructure for Pharo-like languages that allows us to easily extend and modify such languages. Our bootstrapping process relies on a first-class runtime. A first-class runtime is a meta-object that represents a program's runtime and provides a MOP to easily load code into it and manipulate its objects. It decou-ples the virtual machine (VM) and language concerns by introducing a clear VM-language interface. Using this process, we show how we succeeded to bootstrap a Smalltalk-based language named Candle and then extend it with traits in less than 250 lines of high-level Smalltalk code. We also show how we can bootstrap with minimal effort two other languages (Pharo and MetaTalk) with similar execution semantics but different object models. Acknowledgments We thank the European Smalltalk User Group for their support (www.esug.org).Lire moins >
Langue :
Anglais
Comité de lecture :
Oui
Audience :
Internationale
Vulgarisation :
Non
Collections :
Source :
Fichiers
- https://hal.inria.fr/hal-01185812/document
- Accès libre
- Accéder au document
- https://hal.inria.fr/hal-01185812/document
- Accès libre
- Accéder au document
- https://hal.inria.fr/hal-01185812/document
- Accès libre
- Accéder au document
- document
- Accès libre
- Accéder au document
- Poli15a-Onward-Bootstrapping.pdf
- Accès libre
- Accéder au document