Résumé
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. 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. Lintrospection 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. La réflexion, l’introspection et l'intercession sont des cas particuliers de métaprogrammation. Parallèlement aux concepts d'introspection et d'intercession, il existe deux types de réflexion : la réflexion structurelle (qui concerne surtout le code du programme) et la réflexion comportementale (qui concerne surtout l’environnement du programme). La réflexion structurelle consiste à réifier le code d'un programme et tous les types abstraits accessibles par ce programme. Dans le premier cas, la réification du code d'un programme permet de manipuler ce programme pendant l'exécution. Il est possible ainsi de maintenir un programme même lorsque celui-ci effectue des tâches. Dans le deuxième cas, la réification des types abstraits permet au programme d'examiner et de modifier la structure de types complexes.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.