Notion de tableau associatif
129
part des langages compilés disposent, en plus de ces possibilités d’allocation statique, de possibilités dites d’allocation dynamique (ou de gestion dynamique ; on parle aussi de gestion
d’un tas). L’emplacement demandé n’est alors défini que pendant l’exécution du programme 1 . Dans le cas d’un tableau, cela signifie que sa dimension n’a plus besoin d’être une
expresion constante ; elle peut très bien figurer dans une variable dont on a lu la valeur en
donnée ou résulter d’un calcul opéré par le programme lui-même.
Généralement, dans les langages où les tableaux sont statiques, leurs déclarations sont
proches ce celles que nous utilisons dans ce manuel. En revanche, dans les langages compilés
où la gestion des tableaux est dynamique, les choses sont un peu différentes car il existe une
instruction particulière de réservation de l’emplacement, instruction qui peut bien sûr être
exécutée à n’importe quel moment et non plus seulement avant l’exécution du programme.
Dans les langages interprétés, comme le besoin de mémoire n’apparaît qu’au fil de
l’exécution, la gestion de la mémoire est généralement dynamique (aussi bien d’ailleurs pour
les variables que pour les tableaux).
Quoi qu’il en soit, cette différence de gestion de la mémoire n’a pas d’incidence directe sur
l’aspect algorithmique d’utilisation des tableaux, tel que nous l’avons exposé ici.
Par ailleurs, dans les langages où les tableaux sont gérés dynamiquement, les tableaux à deux
dimensions apparaissent comme des tableaux de tableaux à une dimension et chacun de ses
tableaux peut éventuellement posséder une dimension différente. Là encore, cela ne remet
pas en question ce qui a été exposé ici puisqu’il ne s’agit en fait que d’une possibilité supplémentaire...
Enfin, la plupart des langages autorisent l’usage de tableaux à plus de deux dimensions. Ils
sont rarement employés et plutôt destinés à des situations très spécifiques.
12 Notion de tableau associatif
On peut dire qu’un tableau usuel à une dimension associe un nombre entier (l’indice) à une
valeur. Le tableau associatif possède un caractère plus général, en associant ce qu’on nomme
une clé à une valeur. Cette fois, la clé peut être d’un type quelconque (caractère, chaîne, nombre...) et, de plus, leurs valeurs n’ont plus besoin d’être consécutives. Ainsi, on pourra
associer :
• la note 14,25 à la chaîne «Thibault», au lieu, par exemple, de l’indice 1,
• la note 13,75 à la chaîne «Thomas», au lieu, par exemple, de l’indice 2,
• ...
Généralement, les tableaux associatifs n’ont pas de dimension fixe et leurs emplacements
sont réservés dynamiquement au fur et à mesure des besoins.
1. Nous rencontrerons un mécanisme comparable dans le cas des objets et, cette fois, nous l’examinerons en détails.
Précédent

- 152/370

Suivant