Référence circulaire

En informatique, une référence circulaire est une suite de références dans laquelle le dernier objet référence le premier résultant en une boucle fermée. Le concept mathématique sous-jacent est un cycle dans la théorie des graphes.

Notons le fait que A référence B. Si , alors on a une référence circulaire. En effet, on a et donc par transitivité . Cette situation pose un problème car cela signifie que l'on ne peut pas avoir A sans disposer de A lui-même.

Exemples

Par exemple, pour la résolution de dépendances logicielles : si par le jeu des dépendances un paquet a besoin de lui-même pour pouvoir être installé, alors il est impossible de l'installer à moins qu'il ne soit déjà installé.

Ce problème se retrouve également dans le bootstraping où un compilateur écrit dans le langage qu'il est en train de compiler, qu'il aura besoin de lui-même pour pouvoir être compilé.

Avec un ramasse-miettes qui fonctionne par comptage de références, un cycle dans les références entre objets n'est pas détecté, ce qui empêche de libérer la mémoire et de la rendre disponible pour le reste de l'exécution du programme.

C'est aussi la cause de récursions infinies lorsqu'avec les appels de méthodes, on appelle une méthode qui en appelle une autre, qui en appelle une autre jusqu'à ce que l'on appelle à nouveau la première méthode, et le cycle recommence jusqu'à un dépassement de pile qui pourrait être utilisé par un attaquant pour prendre le contrôle de l'ordinateur.

Articles connexes

  • Portail de l’informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.