Référence (informatique)

Un article de Wikipédia, l'encyclopédie libre.

En programmation, une référence est une valeur qui permet l'accès en lecture et/ou écriture à une donnée située soit en mémoire principale soit ailleurs. Une référence n'est pas la donnée elle même mais seulement une information de localisation. La plupart des langages de programmation permettent l'utilisation de références, que ce soit de façon explicite ou implicite.

Généralement, les références sont utilisables via des types de données disjoints du type de la donnée référencée (quand le langage dispose d'un système de typage). Le typage des références permet de manipuler les données référencées de manière abstraite tout en respectant leurs propres contraintes de type.

Le type de référence le plus simple, mais aussi le moins encadré, est le pointeur. Il s'agit simplement d'une adresse mémoire.

Les références sont souvent vues comme de simples noms identifiant une donnée. Plusieurs noms peuvent référencer la même donnée, ce qui peut provoquer des effets de bords indésirés. Le plus classique consistant à libérer l'objet sans invalider ses références, entraînant souvent lors de leur future utilisation une erreur de segmentation.

De la même manière les références peuvent être supprimées, l'objet non référencé devient alors inaccessible (quel que soit son type). On parle alors de fuite de mémoire dans le cas où le langage n'offre pas un mécanisme de type ramasse-miettes.

En conception de base de données, une référence est une contrainte statique qui assure qu'un attribut X d'une relation A référence (pointe vers) un attribut Y d'une relation B, ce qui revient à dire que X ne peut prendre une valeur V que si au moins un des attributs Y a pour valeur V. On appelle ça une contrainte de référence, et X est alors une clé étrangère dans la relation A.