Réflexion (informatique)

Page d'aide sur l'homonymie Pour les articles homonymes, voir Réflexion et Réflexivité.

En programmation informatique, la réflexion est la capacité d'un programme à examiner, et éventuellement à modifier, ses propres structures internes de haut niveau lors de son exécution.

On appelle réflexivité le fait pour un langage de programmation de permettre l'écriture de tels programmes. Un tel langage de programmation est dit réflexif.

Introspection et intercession

On distingue deux techniques utilisées par les systèmes réflexifs :

  • l'introspection, qui est la capacité d'un programme à examiner son propre état ;
  • l'intercession, qui est la capacité d'un programme à modifier son propre état d'exécution ou d'altérer sa propre interprétation ou signification.

L'introspection est utilisée pour effectuer des mesures de performance, inspecter des modules ou déboguer un programme. Elle est implémentée dans des langages comme Smalltalk ou Java qui fournissent des outils pour connaître la classe d'un objet, ses attributs, ses méthodes, etc. L'introspection n'existe pas dans des langages comme C ou Pascal (mais existe dans Delphi depuis la version 2010).

L'intercession permet à un programme d'évoluer automatiquement en fonction des besoins et de l'environnement. Cette propriété apparaît dans des langages comme Smalltalk, Groovy ou Python, mais elle n'existe pas dans des langages comme C.

Dans d'autres langues