M2 INFORMATIQUE
UE HAI931I - Méta-Programmation et Réflexivité
Christophe Dony
Vue Générale
-
Concepts étudiés : modèles, méta-modèles, réflexivité,
méta-programmation, modèles à l'exécution (models@runtime),
méta-classes, méta-objets, auto-adaptabilité dynamique, construction de systèmes auto-adaptables, construction de
systèmes réflexifs.
- Cours :
- Utilisation de Systèmes Réflexifs : utilisation de méta-objets pour manipuler les classes, les méthodes,
ou la pile d'exécution, ou pour définir un interpréteur
méta-circulaire du langage.
- Construction de systèmes réflexifs
- TPs: Pratique en TP des langages réflexifs les plus élaborés et puissants : Pharo et
CLOS (Common-Lisp Object System), dont dérivent les autres
(JavaScript, Python, Ruby, etc).
- Projet :
Construction de systèmes réflexifs : construction d'un
interpréteur pour un langage intégrant des
méta-classes explicites, avec son bootstrap.
Notes de Cours
Sujets de TDs/TPs
Corrigés des TDs/TPs
Note : Quand les corrigés sont des codes Pharo, pour les utiliser :
--> solution 1 : ouvrir les fichiers avec votre nagigateur ou avec un éditeur de texte et
faire des copier/coller vers l'éditeur Pharo (le browser);
--> solution 2 : sauvegarder le fichier avec son extension ".st", puis en Pharo, sélectionner le fichier avec l'outil
FileBrowser puis le charger avec FileIn ou Install. Le code
chargé (installé) sera ensuite visible dans le browser.
-
Pour le TP séances 1, 2 et 3 sur les bases de Pharo, une implantation des classes Pile
et PileTest sont données ici : CPile.st
et CPileTest.st.
Le nom de la classe dans ce corrigée est CPIle; cela permet de ne pas
interférer avec le nom de votre version de la classe Pile;
vous pouvez essayez de trouver les réponses avant de regarder le corrigé.
Si vous avez bien nommé votre package TD-HAI931 comme demandé, vous
trouverez la classe corrigée CPILE, avec le browser, dans le sous-package TD-HAI931-PileBase.
- à suivre ...