Ce chapitre constitue une parenthèse dans le déroulement de l’exposé. Nous avons vu un certain nombre de notions et il serait intéressant de savoir ce qui se passe "sous le capot". On va donc regarder de plus près le niveau quasiment "physique" dans lequel se joue la gestion des données.
Un langage va utiliser une variable pour stocker une donnée :
VariableX
) mais, pour certains modes d’exécution, ce nom va disparaître dans le code machine généré.
Les données correspondantes vont être stockées à une adresse
dans la mémoire.
Type
) qui permet d’une part de savoir combien d’espace il faut
réserver dans la mémoire et, d’autre part, d’interpréter les données qui sont situées à cet endroit.
(mais nous avons vu qu’il existe des langages dans lesquels les variables ne sont pas typées )
Ce chapitre présente de manière simplifiée la façon dont certaines structures organisent les données en mémoire.
Un tableau stocke des données de manière contiguë en mémoire.
A la base ce sont des données de même taille; donc pour accéder à la N
ième donnée il suffit de rechercher
à partir de l’emplacement mémoire du début du tableau, un emplacement situé à N x taille de la donnée
On peut aussi réaliser des tableaux qui gèrent des indirections en mémoire:
pour retrouver l'élément N
on recherche une donnée à l’index N
qui donne l’emplacement
de la valeur recherchée:
Selon les langages, dans un tel tableau les éléments qui permettent de réaliser l’indirection peuvent être:
L’avantage d’un tel tableau est qu’il permet de stocker dans une même structure des données qui chacune nécessite une taille mémoire différente (par exemple des chaînes de caractères de tailles différentes).