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
- SEANCES 1 à 9 - Feuille de TD/TP - Utilisation de systèmes
réflexifs :
- Metaprogrammation en
Pharo/Smalltalk (utilisation de méta-objets pour manipuler les classes, les méthodes,
ou la pile d'exécution, utilisation des méta-classes implicites,
- Metaprogrammation en Clos avec les méta-classes explicites,
combinaison et compatibilité de métaclasses (ou d'aspects).
- à suivre ...
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.
Projets
- Etape 1 : à suivre
- Choix des sujets pour l'étape 2.