Ce document aborde la méta-programmation et la programmation orientée aspect, en expliquant la définition et l'utilisation des métadonnées ainsi que leur traitement dans les programmes. Il décrit les bénéfices, les conventions de nommage, et les outils en Java pour la méta-programmation, ainsi que l'importance de la programmation orientée aspect pour gérer les préoccupations croisées et améliorer la modularité. Enfin, il présente AspectJ comme une mise en œuvre clé des principes de l'AOP dans Java.